Win32API 質問箱 Build4

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:02/08/04 14:14
DialogベースのウィンドウでESCキーで終了しないようにするにはどうしたら
良いのでしょうか? spy++で追っかけると、いきなりDESTROYが飛んでるよ
うですが・・・
IDCANCELが飛んでこなかったっけ?
>>952
>>953が正解。なんで、IDCANCELを受けないようにすればいい。というと、
「右上の×で閉じないんですが」と言われそうなので、そのときは、
WM_SYSCOMMAND捕まえて、wParamがSC_CLOSEだったら終了処理にすれば、
終了させられる。
955952:02/08/04 16:12
大感謝。完璧です。
956デフォルトの名無しさん:02/08/05 02:37
WMPみたいに「常に手前に表示」と同じようなプログラムを作るには
どのような方法がありますか?
SetWindowPos
HWND_TOPMOST
でぐぐれ
958956:02/08/05 02:44
>>957
サンクス。
959JPEG特許問題:02/08/05 16:04
OleLoadPictureFileはMFCでしか使えないのでしょうか?
MFCでいうSetPictureDispatch等がSDKで使えるのなら解決しそうなんですが、
やり方が分かりません。

OleLoadPictureFileがSDKで使えないならIJG・・・・鬱。


SDKでOleLoadPictureFileを使う方法を教えて頂ければありがたいです。
よろしくお願いします。
960デフォルトの名無しさん:02/08/05 16:04
ペゾルドのプログラミングWindowsがいまいち理解できません。
こんな漏れは逝ってよしですか?
このサイコロの目は 裏の目とオモテの目を足すと7になります
1と6は赤
2と5は赤と青
3と4は青に塗られています。

今サイコロを転がして赤が出ました。 裏が赤の確率は?

誤爆カコワルイ
2/3 ?
964デフォルトの名無しさん:02/08/05 16:54
1/2
>>964
why?
>>962
What?
>>961
where?
>>964で合ってるんじゃないのか??
>>968
はぁ?
>>110
テキストボックスは Windowsの用意してるコントロールを使っています
 もしテキストボックスを使う事で何か問題があるなら、Windows上のほぼ
 全てのアプリに問題がある事になるでしょう

なお、一般的にはクライアントアプリで脆弱性を云々しないと思います
>>968
おぃおぃ。。
今、赤が出たなら、目は 1 か 6 か 2。
その中で裏側も赤の場合は 1 か 6 だから、2/3 だろ?違うのか?
>>959
OleLoadPicturePath() で検索しる
973デフォルトの名無しさん:02/08/05 22:03
ハードウェアプロファイルの一覧を取得したのですが、APIとかありますか?
現在のハードウェアプロファイルの内容を取得するAPIはあったのですが(GetCurrentHwProfile)、
HWプロファイルの一覧を取得したいのです。
レジストリから直接でもいいのですが、HWプロファイル名が見つかりませんでした。
どなたか、よろしくおながいします。
974デフォルトの名無しさん:02/08/05 22:11
パスの最後に\をつける(すでに付いていたら何もしない)には
下記の方法で大丈夫でしょうか?
一応「表」フォルダを作って試してみて、ちゃんと\は付いたのですが
他に気をつけることはありますか?

void AddBackslash(LPTSTR lpszPath)
{
  if(IsDBCSLeadByte(lpszPath[lstrlen(lpszPath) - 2]) ||
    (lpszPath[lstrlen(lpszPath) - 1] != '\\')){
    lstrcat(lpszPath, TEXT("\\"));
  }
}
>>974
IsDBCSLeadByteでは「2バイト文字の2バイト目ではない」ことが保証できないから、
ちゃんと頭から調べないとダメよん。
っつか、そのコードだと "a" とか与えたら吹っ飛びそうだが。
>>975
この場合は保証されなくてもよくない?
>>976
すると 「も\」 が 「も\\」 になってしまうがよろしいか?
>>977
Windowsのフォルダ名に\はつけられんよ。
>>980さん、次スレよろしくね
980デフォルトの名無しさん:02/08/05 23:40
フォルダオプションのクリック方法が「ポイントして選択」かどうか(HoverSelection)、調べられません?
ホットトラッキングは、SystemParametersInfo の SPI_GETHOTTRACKING で取得できるンですが…
>>978
コーディングの初期条件である
>パスの最後に\をつける(すでに付いていたら何もしない)
を満たさなくなるってことだろ?
>>981
え?なんで満たさなくなるの?
>>974
PathAddBackslash使わん理由は?
>>985
次スレよろ
断る

カチャ
  ;y=ー( ゚д゚)・∵. ターン
  \/| y |)
>>977
仮に C:\も\ というパスがあったとすると、
> IsDBCSLeadByte(lpszPath[lstrlen(lpszPath) - 2])
で「も」の2バイト目がチェックされて偽となり、次に
> lpszPath[lstrlen(lpszPath) - 1] != '\\'
でパスの最後が \ だからこれも偽となり、結局何もせずに
リターンするから C:\も\ はそのままでは?
俺が立てようと思ったが、今日すでに他のスレを立ててしまって
はじかれてしまった…
>>986
「も」のShiftJISコードは 82 E0 で
IsDBSCLeadByte(0xE0) は TRUE。よって、
    lstrcat(lpszPath, TEXT("\\"));
が実行されるだろ?

やるなら、
if (CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1) != '\\')
  lstrcat(lpszPath, TEXT("\\"));
とかだろ。
最近、Win32API書いてないから CharPrev の引数あってるか自信ないけど(w
>>982
それくらい実際にコンパイルすりゃ判るだろうに
>>983
shlwapi.dll が入ってない環境のことは考えないのか?

漏れなら GetFullPathName() 使うよ
新スレ

Win32API 質問箱 Build5
http://pc3.2ch.net/test/read.cgi/tech/1028580373/
おつ>990
埋めちゃえ〜
992JPEG特許問題:02/08/06 10:36
>>972殿

ありがとうございます。

しかし、不思議なテクニックを使う関数ですな。
いわゆるCOMというものでしょうか?
999 ◆itdn3QI6 :02/08/06 11:17
999









1000 ◆itdn3QI6 :02/08/06 11:18
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。