Win32API質問箱 Build ..
[2ch|▼Menu]
2:デフォルトの名無しさん
09/02/03 09:57:13
MSDN
- MSDN ホームページ
URLリンク(www.microsoft.com)
- MSDN ライブラリ
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
- MSDN ライブラリ (ローカル版)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
- Windows SDK & Platform SDK
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)

書籍
- Advanced Windows 第5版
URLリンク(www.amazon.co.jp)

3:デフォルトの名無しさん
09/02/03 09:57:46
75 スレリンク(tech板)
74 スレリンク(tech板)
73 スレリンク(tech板)
72 スレリンク(tech板)
71 スレリンク(tech板)
70 スレリンク(tech板)
69 スレリンク(tech板)
68 スレリンク(tech板)
67 スレリンク(tech板)
66 スレリンク(tech板)
65 スレリンク(tech板)
64 スレリンク(tech板)
63 スレリンク(tech板)
62 スレリンク(tech板)
61 スレリンク(tech板)
60 スレリンク(tech板)
59 スレリンク(tech板)
58 スレリンク(tech板)
57 スレリンク(tech板)
56 スレリンク(tech板)
55 スレリンク(tech板)
54 スレリンク(tech板)
53 スレリンク(tech板)
52 スレリンク(tech板)
51 スレリンク(tech板)

4:デフォルトの名無しさん
09/02/03 09:57:59
50 スレリンク(tech板)
49 スレリンク(tech板)
48 スレリンク(tech板)
47 スレリンク(tech板)
46 スレリンク(tech板)
45 スレリンク(tech板)
44 スレリンク(tech板)
43 スレリンク(tech板)
42 スレリンク(tech板)
41 スレリンク(tech板)
40 スレリンク(tech板)
39 スレリンク(tech板)
38 スレリンク(tech板)
37 スレリンク(tech板)
36 スレリンク(tech板)
35 スレリンク(tech板)
34 スレリンク(tech板)
33 スレリンク(tech板)
32 スレリンク(tech板)
31 スレリンク(tech板)
30 スレリンク(tech板)
29 スレリンク(tech板)
28 スレリンク(tech板)
27 スレリンク(tech板)
26 スレリンク(tech板)

5:デフォルトの名無しさん
09/02/03 09:58:10
25 スレリンク(tech板)
24 スレリンク(tech板)
23 スレリンク(tech板)
22 スレリンク(tech板)
21 スレリンク(tech板)
20 スレリンク(tech板)
19 スレリンク(tech板)
18 スレリンク(tech板)
17 スレリンク(tech板)
16 スレリンク(tech板)
15 スレリンク(tech板)
14 URLリンク(pc5.2ch.net)
13 URLリンク(pc5.2ch.net)
12 URLリンク(pc5.2ch.net)
11 URLリンク(pc5.2ch.net)
10 URLリンク(pc5.2ch.net)
9 URLリンク(pc5.2ch.net)
8 URLリンク(pc5.2ch.net)
7 URLリンク(pc3.2ch.net)
6 URLリンク(pc3.2ch.net)
5 URLリンク(pc3.2ch.net)
4 URLリンク(pc3.2ch.net)
3 URLリンク(pc.2ch.net)
2 URLリンク(pc.2ch.net)
1 URLリンク(pc.2ch.net)

6:デフォルトの名無しさん
09/02/03 09:58:37
- Google 聞く前に検索
URLリンク(www.google.com)

下記サイトは、違っている事もあるので参考程度にしよう!
流れを参考にしながら、APIの仕様を読めば使えるはず。

- 猫でもわかるプログラミング
URLリンク(www.kumei.ne.jp)
- Win32 API入門
URLリンク(wisdom.sakura.ne.jp)
- Win32 プログラミング入門
URLリンク(www7.plala.or.jp)
●Win32API(C言語)
URLリンク(www.geocities.jp)

7:デフォルトの名無しさん
09/02/03 09:59:40
後ろで大きな爆発音がした。あるいは気のせいかもしれない。
とりあえず今は驚いて振り返る前に、まずパスタをゆでようと思った。



そんな思いで立てましたわ。

8:デフォルトの名無しさん
09/02/03 10:28:09
これはいちおつじゃなくて

知らないならレスしないでください。

9:デフォルトの名無しさん
09/02/03 12:03:01
CD取り出しするAPIってありますか?

10:デフォルトの名無しさん
09/02/03 12:07:38
DeviceIoControl

11:デフォルトの名無しさん
09/02/03 12:14:07
mciSendStringで開け閉めできたような

12:デフォルトの名無しさん
09/02/03 12:52:48
Windows NT または Windows 2000 または Windows XP でリムーバブル メディアを Ejecting する方法
URLリンク(support.microsoft.com)


13:デフォルトの名無しさん
09/02/03 13:00:30
>>10-12
ありがとうございます

14:デフォルトの名無しさん
09/02/03 14:08:09
CDにかかった精子を綺麗に拭き取るAPIありますか?

15:デフォルトの名無しさん
09/02/03 14:23:38
::RefreshSamenByHand( HWND hWnd);

16:デフォルトの名無しさん
09/02/03 14:25:10
学校サボってる中学生の相手なんかしなくても

17:デフォルトの名無しさん
09/02/03 14:32:55
相手してるのも学校サボってる中学生だから

18:デフォルトの名無しさん
09/02/03 14:37:36
この時間にレスしてる奴って学校サボってる中学生だから

19:デフォルトの名無しさん
09/02/03 15:55:27
ウィンドウを作成しESCで閉じるだけのプログラムに
CreateProcess関数でwinmain.exeを起動するプログラムを追加したんだけど

当たり前だけど、新しいウィンドウが開いてマインスイーパーが起動しますよね
この際、最初に作ったウィンドウの子ウィンドウとしてマインスイーパーを起動することは出来ないのでしょうか

20:デフォルトの名無しさん
09/02/03 16:05:46
以下の判定文でMDIフレームウィンドウ(一番大本のウィンドウ)が
最前面かどうかを判定しようとしましたが、
よく分からないハンドルしか返って来ません。
MDI子ウィンドウ等かと思いましたが違うようです。
一体何のハンドルが返ってきているのでしょうか?
g_hWndMain == GetWindow( g_hWndMain, GW_HWNDFIRST )

21:デフォルトの名無しさん
09/02/03 16:19:21
>>20
それはMDIクライアントというウィンドウ。
URLリンク(wisdom.sakura.ne.jp)

22:デフォルトの名無しさん
09/02/03 16:30:09
>>19
そろそろ諦めて

23:デフォルトの名無しさん
09/02/03 16:31:06
ホットキーコントロールに表示されてる文字列ってどうやって取得する?


24:デフォルトの名無しさん
09/02/03 16:33:34
HKM_GETHOTKEY

25:デフォルトの名無しさん
09/02/03 16:34:24
はい?

26:デフォルトの名無しさん
09/02/03 16:34:50
>>19
できるけど教えない。

27:デフォルトの名無しさん
09/02/03 16:36:00
>>22
あきらめるって何を?
プログラム組むことあきらめて>>22みたいに、知識無いのに無駄口叩いて粘着する人間になれってこと?

28:デフォルトの名無しさん
09/02/03 16:37:13
>>26
できるならそれはよかったと安心できたけど
なんで質問スレにいるの?
アホなの?

29:デフォルトの名無しさん
09/02/03 16:38:12
718 名前:デフォルトの名無しさん[] 投稿日:2009/01/30(金) 08:29:41
やりたいこととしては、吉里吉里とDXライブラリを同ウィンドウで処理することなんですが


WinAPIでウィンドウ作って
その子ウィンドウとして、ある.exeファイルを起動(吉里吉里)
そして、通常は霧きりで進行、なんらかのフラグでDXライブラリに移行
みたいなのを創造しているのですが、これは可能なのでしょうか?
知識があまり無いので勘違いしまくりの発言だったらすいません

791 名前:デフォルトの名無しさん[sage] 投稿日:2009/01/31(土) 13:18:40
ああ、親ウィンドウのエディットボックス内の入力されている
ファイル名を子ウィンドウで取得させて処理させたいって事か・・・やっと意味がわかった
どのタイミングでさせたいの?場合によっては独自定義メッセージでさせちゃうとかすりゃいいのに

878 名前:デフォルトの名無しさん[] 投稿日:2009/02/01(日) 21:16:33
WinAPIでアプリAを作り、Aを起動すると
ウィンドウを作成し
次に予め作っておいたアプリBを起動し、それをアプリAの子ウィンドウにする
これってどうやればできますでしょうか

885 名前:デフォルトの名無しさん[] 投稿日:2009/02/01(日) 21:27:06
>>881
ハンドルから子ウィンドウは分かりましたがアプリAを起動するとアプリBの.exeを自動で起動する方法が分かりません



数日前からいるこいつだろ。
最初にできるって言った奴責任持って回答しろよw

30:22
09/02/03 16:41:40
>>27
26みてーのしかいないから諦めろって事よ

ここで聞いても無駄な時間だと思うぜー

31:デフォルトの名無しさん
09/02/03 16:42:31
>>29
うんそうだけど、質問スレに粘着して質問に答えずに意味の分からない煽りをする必要性を教えて欲しいかな
暇なの?それとも、初心者が育つのが嫌なの?

32:デフォルトの名無しさん
09/02/03 16:43:35
>>30
知識無いのに知ったかぶって粘着してる奴ばっかってのは知ってるけど
たまにちゃんと知ってる人も居るから聞いてます
CreateProcess教えてくれた人とかね

33:デフォルトの名無しさん
09/02/03 16:48:38
別プロセスのウインドウを親ウインドウに指定する事を禁止する記述は最近のSDKからは消えているので
普通にSetParentでできるかもしれない
ただし親ウインドウに指定できたからと言って期待通りに動くかどうかはまた別問題

34:デフォルトの名無しさん
09/02/03 16:52:38
やったことないけど、新規に独自の Window station を作って
STARTUPINFO にそのステーション名渡す とかいう話になるのかね?

35:デフォルトの名無しさん
09/02/03 17:28:18
>>33
ありがとうございます
既存のウィンドウのハンドルを取得するのはFindWindow関数で出来るみたいなのでちょっとまた試行錯誤してみます

36:デフォルトの名無しさん
09/02/03 17:35:41
もう来るなよ

37:デフォルトの名無しさん
09/02/03 17:36:35
メッセージフックで他のソフトにWM_KILLFOCUSを通さないようにしたいと思い、
メッセージフック→フックプロシージャ( if(cwps->message==WM_KILLFOCUS)return true; )
とやり、しっかりif(cwps->message==WM_KILLFOCUS)return true;の所にも届いているのですが、
上手くカットできてないのか何故かそのフックを組み込んだソフトにもWM_KILLFOCUSが届いてしまいます。
一度、WM_KILLFOCUSをフックしたらメッセージボックスを出すようにして試してみてちゃんとWM_KILLFOCUS
が送られてくるタイミングでメッセージボックスがだされるのでフックはちゃんとできていると思うんですが
なぜでしょうか?
SetWindowsHookExの第一引数はWH_CALLWNDPROCにしています。

38:デフォルトの名無しさん
09/02/03 17:48:33
>>37
It is highly recommended that you call CallNextHookEx and
return the value it returns; otherwise, other applications that
have installed WH_CALLWNDPROC hooks will not receive hook
notifications and may behave incorrectly as a result. If the hook
procedure does not call CallNextHookEx, the return value should be zero.

The CallWndProc hook procedure can examine the message, but it cannot modify it.


39:デフォルトの名無しさん
09/02/03 17:54:52
英語よく分がんねぇ
CallNextHookEx呼ぶか、0返すかしろってことだよね?でもCallNextHookExまたは0
返すとメッセージカットできないし、要するにメッセージフックは来たメッセージ
が分かって勝手に処理を追加することはできても本来されるとされていた処理はカット
できないってこと?

40:デフォルトの名無しさん
09/02/03 18:07:28
煽ってる奴っていつもここに粘着してるクズだからスルーしなさい

41:デフォルトの名無しさん
09/02/03 18:08:19
>39
>38=URLリンク(msdn.microsoft.com)(VS.85).aspx

42:デフォルトの名無しさん
09/02/03 18:39:51
文字列を仮想キーコードに変換できる?
"A" → VK_A
"Shift" → VK_SHIFT
みたいなの

43:デフォルトの名無しさん
09/02/03 18:44:12
要するにメッセージフックではメッセージをカットすることはできないと?
ではメッセージフックの他にメッセージをカットする方法ありますか?

44:デフォルトの名無しさん
09/02/03 18:50:01
>>32
前スレかどっかで答えたのじゃだめなん?
CreateProcessで立ち上げたアプリのHINSTANCEから
メインウィンドウのハンドルを取得して
そのウィンドウハンドルを自分のウィンドウの子ウィンドウにするように
ウィンドウスタイル変更したらいいんじゃね?



45:デフォルトの名無しさん
09/02/03 19:17:57
>>43
たしか、消し去りたいときはWM_NULLにしてしまうのではなかったかな?

46:デフォルトの名無しさん
09/02/03 19:25:20
×メッセージフックではメッセージをカットすることはできない
△WH_CALLWNDPROCではではメッセージをカットすることはできない

47:デフォルトの名無しさん
09/02/03 19:38:47
変更可能なのWH_MESSAGEだけじゃね。
あとローレベルフック。

48:デフォルトの名無しさん
09/02/03 20:43:04
LoadImageでL"image\\hoge.png"を渡して
PNGの画像を読み込もうとすると0が返ってくるです。
どうすればいいですか?

49:デフォルトの名無しさん
09/02/03 21:02:54
>>48
まずはMSDNを読め。

50:デフォルトの名無しさん
09/02/03 21:07:48
LoadImageっていつの間にかpngに対応したのか
今日はじめて知ったよ

51:デフォルトの名無しさん
09/02/03 21:10:01
>42
無理じゃないかなー。情報減ってるんで。

52:デフォルトの名無しさん
09/02/03 21:15:57
ヘッダ読んで置換

53:デフォルトの名無しさん
09/02/03 21:35:10
PNG扱いたいなら素直にGDI+使っとけ、で終了。

54:デフォルトの名無しさん
09/02/03 21:49:09
OleLoadPictureFileは対応しているように見えるな。
ファイル名をVARIANT型で渡す必要があるので多少面倒だが。
……PGNという画像形式は流石に無いと信じたい。

55:デフォルトの名無しさん
09/02/03 21:56:19
PGNなんて画像形式聞いた事無いんだが

56:デフォルトの名無しさん
09/02/03 22:11:10
libpng

57:デフォルトの名無しさん
09/02/03 22:23:42
PGNも知らないとかいつの時代の人間だよ……

58:デフォルトの名無しさん
09/02/03 22:27:48
くやしい!…PGN…PGNッ

59:デフォルトの名無しさん
09/02/03 22:31:35
クリムゾンAPI

60:デフォルトの名無しさん
09/02/03 22:36:11
>>51
そうかーありがとう

61:デフォルトの名無しさん
09/02/03 22:40:06
DIBをStretchDIBits関数で描画したときに
YSrcを0,Xsrcを0以外に設定すると
Yの座標がおかしくなるんだけど,そういうもの?

62:デフォルトの名無しさん
09/02/04 00:18:41
PGMじゃなくてPGNか。。

63:デフォルトの名無しさん
09/02/04 00:23:05
ピグモンカワユス

64:デフォルトの名無しさん
09/02/04 00:24:35
libpngは正直言ってお勧めしない

65:デフォルトの名無しさん
09/02/04 00:30:48
>文字列を仮想キーコードに変換できる?
変換テーブルを自前で用意すりゃいいじゃん。

66:デフォルトの名無しさん
09/02/04 00:33:38
日本語文字は?

67:名無し募集中。。。
09/02/04 00:46:40
俺ならSusie Plugin

68:デフォルトの名無しさん
09/02/04 01:02:45
pngのデコードくらい自分で書けばいい

69:デフォルトの名無しさん
09/02/04 01:09:28
イヤイヤマテマテ
BMPならともかく、PNGとかTIFFは相当手間かかると思うんだぜ

70:デフォルトの名無しさん
09/02/04 01:18:13
特に、TIFFは色々対応し始めたらきりがないからな。
画像のデコード自体が目的なら止めはしないけど。

71:デフォルトの名無しさん
09/02/04 02:23:53
>>65
めんどいやん・・

72:デフォルトの名無しさん
09/02/04 02:36:15
MapVirtualKeyしてGetKeyNameTextして一致するやつ探せばええやん
PrtScrとかキーボードによって表記違うやつがどうなるか知らんけど

73:デフォルトの名無しさん
09/02/04 02:39:42
>>69
ガンマとか色空間を捨てればpngは比較的簡単だぞ

74:デフォルトの名無しさん
09/02/04 07:27:16
pngはlibpngあっただろ

75:デフォルトの名無しさん
09/02/04 07:28:23
>>64に戻る

!!↓png以外の話題でお願いします!!

76:デフォルトの名無しさん
09/02/04 09:12:57
ヘッダからVK〜を検索して引けばいい

77:デフォルトの名無しさん
09/02/04 11:30:51
>>48
URLリンク(www.geocities.jp)

78:デフォルトの名無しさん
09/02/04 11:39:46
CLRのPanelコンポーネントに相当するものは何でしょうか?

79:デフォルトの名無しさん
09/02/04 11:57:15
static


80:デフォルトの名無しさん
09/02/04 13:27:05
空のウィンドウ作って包含されるウィンドウの親をそいつにすればいい

81:デフォルトの名無しさん
09/02/04 13:28:04
ちょっと何言ってるかわかんないです

82:デフォルトの名無しさん
09/02/04 14:24:10
それは君の頭が悪いからです

83:デフォルトの名無しさん
09/02/04 14:26:08
どのアプリでもそうなんだが、AdobeReaderからのテキストのドロップが
変になるのはどっちが悪いんですか?

84:デフォルトの名無しさん
09/02/04 14:27:20
AbodeReaberが悪い

85:78
09/02/04 14:29:45
>>80
モードレスダイアログ作ってダイアログプロシージャ作って(ry
ってやつですか?

86:デフォルトの名無しさん
09/02/04 15:04:25
StretchDIBitsで縮小したDIBビットデータにアクセスする方法を教えてください

87:デフォルトの名無しさん
09/02/04 15:21:33
GetDIBits

88:デフォルトの名無しさん
09/02/04 16:12:44
>>87
ありがとうございます。
とりあえずやってみたのですがうまくいきません。。
dwBufferに入ってるデータを縮小してまたdwBufferに戻したいのですが・・・

1440x1080のDIBデータ(dwBuffer)を1280x720に縮小
dwBuffer = new DWORD[1440*1080];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateCompatibleBitmap( NULL, 1280, 720 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );

突っ込み所満載かもしれませんがどこが悪いのでしょうか・・・

89:デフォルトの名無しさん
09/02/04 16:41:38
GetLastErrorぐらいやってから聞いてるんだろうな?

90:デフォルトの名無しさん
09/02/04 16:47:36
>>89
知らないならレスしないで下さい。ウザイだけです。

91:デフォルトの名無しさん
09/02/04 16:49:17
>>90
知らないならレスしないで下さい。ウザイだけです。

92:デフォルトの名無しさん
09/02/04 16:52:57
CreateCompatibleBitmapにNULL渡したら失敗するだろそりゃ

93:デフォルトの名無しさん
09/02/04 16:53:43
何とCompatible(互換)なんだろうな

94:デフォルトの名無しさん
09/02/04 17:05:26
なにをするためにベタDIBデータ欲してるのか分からんが、多分そもそもCreateCompatibleBitmapじゃなくてCreateDIBSectionじゃないとダメな気がするなあ。

95:デフォルトの名無しさん
09/02/04 17:07:02
DC

96:デフォルトの名無しさん
09/02/04 18:17:10
皆さん色々ご指摘ありがとうございます。

>>94
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );
で試してみると先ほどは真っ黒だったのが今度は画面半分下から縮小された画像が表示されました。
(CreateCompatibleBitmapでhdcを指定しても真っ黒でした)
ちなみに、StretchDIBitsはhdcにイメージのハンドルを与えてやると
イメージには正常に縮小された画像が表示されていましたので
怪しい部分はそれ以外だとおもいますが・・・
また何処が間違っているかご指摘お願いします

97:デフォルトの名無しさん
09/02/04 18:19:44
bi.bmiHeader.biWidth = 1280;
bi.bmiHeader.biHeight = 720;
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );

98:86
09/02/04 18:24:11
>>97
早速のお答え有難うございます!!
確かにそれでちゃんと画面の上から書き出しましたが・・・
今度は画像が崩れてしまいました><
でもこれで更に近いところまでくることがでいました!

99:86
09/02/04 18:32:43
すみません。
bi.bmiHeader.biWidth = 1280;
bi.bmiHeader.biHeight = 720;
をしたから画像がくずれたのではなくてその前から崩れた状態でした。。
くずれた状態というのは同じパターンを繰り返してるみたいな・・・
StretchDIBits自体はうまくいってるので他に怪しい所は
CreateDIBSectionとGetDIBitsでしょうか?

100:デフォルトの名無しさん
09/02/04 18:35:05
AABB   AB
AABB -> CD
CCDD
CCDD

AABB   AB■■
AABB -> CD■■
CCDD  ■■■■
CCDD  ■■■■

ビットマップごと小さくしたいのか、ビットマップの大きさは同じで
画像だけ小さくしたいのか

101:86
09/02/04 18:39:19
くぁwせdrftgyふじこl;p

>>97
神様ありがとう!
おもいっきり勘違いしてましたすみません><
GetDIBitsの直前でそれをやればよかったんですね。
ちゃんと表示できました。ありがとうございます。

>>100
いやすみません。
1440x1080のDIBデータだけある状態で
それを1280x720のサイズのDIBデータにしたかったんです><

102:デフォルトの名無しさん
09/02/04 21:16:17
DWORD の次は QWORD かと思ってたら
DWORDLONG という訳の分からないものだった衝撃

103:デフォルトの名無しさん
09/02/04 21:50:18
日記はblogに書いてろクズ

104:デフォルトの名無しさん
09/02/04 21:52:46
       ハ,,ハ
 ((⊂ ヽ ( ゚ω゚ )  / ⊃))
   | L |   '⌒V /
    ヽ,_,/   ヽ_./  お断りします
  __,,/,,   i       お断りします
 (  _     |
  \\_  ̄`'\ \
   ヽ )     > )
   (_/´    / /
         ( ヽ
         ヽ_)

105:デフォルトの名無しさん
09/02/04 22:41:00
basetsd.hに無いDWORDLONGなど邪道。
DWORDの次はDWORD64と決まっておるのだ。

106:デフォルトの名無しさん
09/02/04 22:49:00
タスクトレイにアイコン表示させて右クリックで操作したいんですが
google検索したところ、case WM_TRAYICONMESSAGE: case WM_TRAYICONMESSAGE:
を使うサンプルが出てきました。
Borland C++ Compiler 5.5 で書いてるんですが未定義のシンボルと出て使えませんでした。
Borland C++ Compiler 5.5 での書き方って別にあるんですか?

107:デフォルトの名無しさん
09/02/04 22:51:37
>>106
勝手に定義してるだけだろ。

108:デフォルトの名無しさん
09/02/04 22:52:35
Vista SP1,VC++2008 Win32Projectです。
ウィンドウにツールチップを設定したいのですがうまくいきません。
GetLastErrorは0でした。
主なコードは以下の通りです。

case WM_CREATE:
GetClientRect(hWnd, &ClientRect);
InitCommonControls();
hTool = CreateWindowEx
(
WS_EX_LEFT, TOOLTIPS_CLASS, NULL, TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, NULL, hInst, NULL
);
ToolInfo.cbSize = sizeof(TOOLINFO);
ToolInfo.hinst = NULL;
ToolInfo.hwnd = hWnd;
ToolInfo.lParam = NULL;
ToolInfo.lpReserved = NULL;
ToolInfo.lpszText = L"テスト";
ToolInfo.rect = ClientRect;
ToolInfo.uFlags = TTF_SUBCLASS;
ToolInfo.uId = 1;
SendMessage(hTool, TTM_ADDTOOL, NULL, (LPARAM)&ToolInfo);

SendMessageの戻り値がFALSEでうまくいきません。
どこが悪いのでしょうか?
VC++を始めて2ヶ月ちょっとの超初心者なので、調べ方が悪いのか解決方法が分りません。
誰かわかる人がいたら教えてください。お願いします。

109:デフォルトの名無しさん
09/02/04 22:53:10
WM_USER+1

110:デフォルトの名無しさん
09/02/04 22:56:00
>>61を知ってる人いません?

111:デフォルトの名無しさん
09/02/04 23:02:03
>>107>>109
ああ、わかりました。ありがとうございました。

112:デフォルトの名無しさん
09/02/04 23:02:45
>未定義のシンボルと出て使えませんでした。
アプリケーション定義のメッセージだもの、自分で定義しなきゃ使えんよ。

#define WM_TRAYICONMESSAGE WM_APP + 1

とでもしておけ。

113:デフォルトの名無しさん
09/02/04 23:11:44
>>105
なんで QWORD にしないんだろうか・・・
5ワードと区別がつかないからか?

114:名無し募集中。。。
09/02/04 23:19:45
QUAD?

115:デフォルトの名無しさん
09/02/04 23:21:37
クアッドワード

116:デフォルトの名無しさん
09/02/04 23:34:58
自分でQWORDって定義して使ってたけど
WORDLONGなんてあったんだね

117:デフォルトの名無しさん
09/02/04 23:45:52
もうUINT64でいいよ。

118:デフォルトの名無しさん
09/02/04 23:49:18
>>110
DIBは通常BottomToTopなので……まあ、色々あるんだわ、これが。
とりあえず、昔のDIB系のAPI使うより、
CreateDIBSectionから始めたほうが幸せになれる、とだけは言っとく。

119:デフォルトの名無しさん
09/02/04 23:52:40
>>118
thx,幸せになるため変更してみる

120:デフォルトの名無しさん
09/02/05 00:44:50
ウィンドウを毎秒50フレームで再描画してるんですが、ダブルバッファリングしてもどうしてもちらつきが多いです。
GDIとかで描いてる以上チラつきをDirectX並に減らすことは無理です?

121:デフォルトの名無しさん
09/02/05 01:04:28
ちらついてる原因にもよるが。WM_ERASEBKGNDは潰しとけとかその辺は押さえてるか?

122:デフォルトの名無しさん
09/02/05 03:49:12
セカンダリモニタの開始座標位置(左上の座標)を得るにはどうすればいいですか?
そのままプライマリの右に設定されてるときはプライマリの解像度を得たら分かるけど
左,上,下とか微妙にずらして斜め上とかにも設定できちゃうので困ってます。

123:デフォルトの名無しさん
09/02/05 04:10:47
GetMonitorInfo

124:デフォルトの名無しさん
09/02/05 09:32:41
>>120
GDIで50fpsとか、馬鹿ですか?

125:デフォルトの名無しさん
09/02/05 14:27:25
指定した日が祝日かどうかを調べるAPIを教えてくださいよ

126:デフォルトの名無しさん
09/02/05 14:33:08
>>125
面白くない。
もっとがんばりましょう。

127:デフォルトの名無しさん
09/02/05 14:35:49
>>125
ワロタwww腹痛ぇwwwww

128:デフォルトの名無しさん
09/02/05 14:50:56
BOOL WINAPI GetHoliday( time_t /* time */)
{
return TRUE;
}

129:デフォルトの名無しさん
09/02/05 14:52:07
せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよ

130:デフォルトの名無しさん
09/02/05 14:52:57
ほら、滑ったw

131:デフォルトの名無しさん
09/02/05 15:20:09
掲示板に僅か50秒で滑ったなんてレスするお前が滑ってるよ

132:デフォルトの名無しさん
09/02/05 15:31:08
どうでもいいよ

133:デフォルトの名無しさん
09/02/05 15:35:23
>>129>>131
笑わせてもらいました。

134:129
09/02/05 16:02:30
ありがとうございます。

135:129
09/02/05 16:05:19
騙り乙

136:129
09/02/05 16:05:24
やめて下さい。知らないならレスしないで下さい。消えてください。

137:129
09/02/05 16:11:16
暇人だな

138:129 ◆TTLQTUMllo
09/02/05 16:15:00
騙りが多いので酉つけました

139:129
09/02/05 16:20:27
先に偽者にトリップ付けられたしw

140:129 ◆TTLQTUMllo
09/02/05 16:40:54
>>139
偽物乙

141:129
09/02/05 16:42:15
しつこいw

142:129
09/02/05 16:43:08
僕がイスラム歴の正月かどうかを調べるAPIです。

143:129 ◆TTLQTUMllo
09/02/05 16:44:41
>>140
オマエが偽者だろw

144:129 ◆TTLQTUMllo
09/02/05 16:46:31
>>143
お前こそ偽者だろw

145:129 ◆TTLQTUMllo
09/02/05 16:48:14
基本的に俺が本物

146:129
09/02/05 16:49:20
トリップ付けて荒らしてる奴は偽者

147:129 ◆TTLQTUMllo
09/02/05 16:49:25
ここまで、全部オレの自演

148:129
09/02/05 16:50:21
もうイスラム歴の正月かどうかを調べるAPIって言わないからこれくらいで勘弁してくれよ

149:デフォルトの名無しさん
09/02/05 16:55:09
ここまで俺の自演

150:デフォルトの名無しさん
09/02/05 16:57:05
2010年の春分の日が決まったばかりだというのに

151:129
09/02/05 16:59:24
せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよw

152:デフォルトの名無しさん
09/02/05 17:08:32
EM_GETLINE
The copied line does not contain a terminating null character.

これ作ったやつマジで氏ね!!

153:デフォルトの名無しさん
09/02/05 17:31:32
>>129
荒らすの止めろクズが

154:デフォルトの名無しさん
09/02/05 18:45:30
129大杉ワロタ

155:デフォルトの名無しさん
09/02/05 18:48:40
>>129が悪い

156:デフォルトの名無しさん
09/02/05 19:19:32
>>129の人気に嫉妬

157:デフォルトの名無しさん
09/02/05 19:22:21
ここまでスベったネタを誤魔化すための自演

158:デフォルトの名無しさん
09/02/05 19:24:48
>>129-133
ここら辺が見所ですかね。

159:デフォルトの名無しさん
09/02/05 19:56:03
>>152
Win16時代のAPIに今更ケチ付けてもねえ

160:デフォルトの名無しさん
09/02/05 19:56:39
まあぶっちゃけると>>129-133は全て>>129の自演だけどな

161:デフォルトの名無しさん
09/02/05 19:58:25
その辺にしてくれねーかな

162:デフォルトの名無しさん
09/02/05 20:03:42
>>159
理由になってない。

163:129 ◆kwai5Y6kNk
09/02/05 20:04:37
あぁ

164:デフォルトの名無しさん
09/02/05 20:14:37
Win16時代は速度優先のため大多数のAPIは終端にNULLをつけなかった。
さすがにプログラマーからの苦情が多かったためWin32ではNULLをつけるよう仕様変更した。
しかしEM_GETLINEなど一部は後方互換性を重視して、敢えてNULLをつけていない。

少しはググレカス

165:デフォルトの名無しさん
09/02/05 22:46:07
最近始めましたが、サンプルを見ると以下のように先頭にスコープ解決演算子を
付けているのが多いのですが、付けると何か良いことがあるのでしょうか?
::MessageBox(〜);

166:デフォルトの名無しさん
09/02/05 22:47:14
インテリセンスが効くとか。

167:デフォルトの名無しさん
09/02/05 22:47:55
MFCやATLのライブラリで同名を用いていることが多いので、それと区別したい場合に用いる。
または、インテリセンスを効かせようとした跡。

168:165
09/02/05 23:07:03
>>166, 167
どうもありがとうございました。

169:デフォルトの名無しさん
09/02/05 23:10:56
>>121やったつもりが1文字間違っててうまく潰せてなかったみたいでした。
すっごい綺麗にいけました!ありがとうございます。

170:デフォルトの名無しさん
09/02/05 23:31:07
PostMessageにてboost::shared_ptrの値を渡すのは危険でしょうか?
Post先で参照後に勝手に消えてくれるので便利な気がするのですが。

171:デフォルトの名無しさん
09/02/05 23:39:07
PostMessage は非同期だから
Post先にメッセージが届く前に shared_ptr が破棄されているかもしれないので危険

172:デフォルトの名無しさん
09/02/06 00:02:24
わかりました。やめときます。素直にSendMessageTimeout使います。

173:デフォルトの名無しさん
09/02/06 00:02:46
119だが,DIBSectionに変更して幸せになれました.

174:デフォルトの名無しさん
09/02/06 00:10:23
幸せになるくらいなら猿でもなれる
問題は幸せにしてやれるかどうかだ

175:デフォルトの名無しさん
09/02/06 00:28:01
深イイ話くらい中身のない言葉っすね

176:デフォルトの名無しさん
09/02/06 00:30:00
おっぱいがあれば幸せ

177:デフォルトの名無しさん
09/02/06 10:18:26
>>129だけど何か質問ある?

178:デフォルトの名無しさん
09/02/06 10:20:14
ない

179:86
09/02/06 10:57:15
またまたすみませんが・・・
数日前色々教えてもらって縮小はうまくいったのですが今度は拡大がうまくいきません><
1440x1080を1980x1080に拡大
dwBuffer = new DWORD[2048*2048];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1980, 1080, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
bi.bmiHeader.biWidth = 1980;
bi.bmiHeader.biHeight = 1080;
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );

出力サイズの1280x720を1980x1080に変更しただけなんですが・・・
どうも出力先のサイズが1440で切られてるみたいです。。。
何処が間違ってますか?

180:デフォルトの名無しさん
09/02/06 11:00:35
ダメだこりゃ
次いってみよー

181:デフォルトの名無しさん
09/02/06 11:03:50
>>179
CreateDIBSectionを元画像と同じ大きさで呼んでるからだろ
てか、お前プログラムやめたら?

182:86
09/02/06 11:17:21
あ、ちなみに
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );
1980じゃなくて1080ですね。

>>181
そう思って出力先と同じサイズにしたんですが画像がくずれてしまって・・・


183:86
09/02/06 11:21:32
あ、ごめんなさい。激しくわかりました。
僕が馬鹿でした。
言葉は悪いけど>>181が参考になりました。

184:デフォルトの名無しさん
09/02/06 11:43:14
どうでもいい茶々を入れる
1980×1080は1920×1080では?

185:86
09/02/06 12:03:21
>>184
いや1980なんですよねこれが。

おかげで拡大もばっちりいったのですが・・・
グラデーションがかかった画像を縮小すると汚さが目立ちます
オリジナルの1440x1080を1280x720にすると目立つとおもって
1440x1080→1980x1080→1280x720でやっても一緒だったのですが
同じ流れでC++BuilderのTBitmapで行うと綺麗に行くのですが
これなんかパラ指定があるんでしょうか?

ちなみにStretchDIBitsのHDCにTBitmapのハンドルを与えてから拡大縮小してます

186:デフォルトの名無しさん
09/02/06 12:05:51
大元が勘違いして変な数値になったのかなw

187:デフォルトの名無しさん
09/02/06 12:07:08
>>185
SetStretchBltModeじゃね?

188:86
09/02/06 12:56:26
>>187
ありがとうございます。
ちょっと試してみます!

189:86
09/02/06 13:37:18
くぁwせdrftgyふじこlp;

>>187
神様ありがとう!
すげえええええええええです!
一発で綺麗に縮小できました!!
ありがとうありがとう

190:デフォルトの名無しさん
09/02/06 13:54:30
NG推奨:86、129

191:デフォルトの名無しさん
09/02/06 15:29:07
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.AlphaFormat = true;
bf.SourceConstantAlpha = 255;

AlphaBlend関数でBLENDFUNCTIONを上記のように設定すると、画像の完全な透明以外の部分はちゃんと
半透明に表示されますが、完全に透明な部分は何故か白で塗りつぶされてしまいます。これはどう設定しても無理ですか?

192:デフォルトの名無しさん
09/02/06 15:45:06
AlphaBlendは糞
計算式がおかしいのは有名な話

193:デフォルトの名無しさん
09/02/06 15:48:33
AlphaBlendに関してはちょっと前にも同じ言い争いがあったので
反論したい人は穏便にお願いします

Win32API質問箱 Build73
スレリンク(tech板:23-76番)

参考

194:デフォルトの名無しさん
09/02/06 16:34:34
過去ログは見れない人も多いから、煽りじゃないなら参考としては不適切。

195:デフォルトの名無しさん
09/02/06 16:44:55
>>193見ました。
MSは糞。

196:デフォルトの名無しさん
09/02/06 18:41:13
>>174
自分が幸せになれんのに
他人が幸せになれるわけないじゃないか・・・・
チクショー

197:デフォルトの名無しさん
09/02/06 19:28:25
DDCAPS_ALPHAの対応マダァ-? (・∀・ )っ/凵⌒☆チンチン

198:デフォルトの名無しさん
09/02/06 20:27:36
他の人が作成したdllを呼び出すプログラムを作成したんですが
あるdllをLoadLibrary()したらエラーリターンしてエラーコードが998(ERROR_NOACCESS)でした。
なのでdll作成側にDllMainのDLL_PROCESS_ATTACHでメモリ破壊してると、このエラーコードになると報告したのですが
こっちでも呼び出し元に不備がないか調査して日々報告するように言われております。
呼び出し元の不備でこのエラーになるケースはどのようなものが考えらるでしょうか?
動作環境はXPのSP2です
エラーになるdllがなにしてるかは不明で、そのdllをもらうこともできません

199:デフォルトの名無しさん
09/02/06 20:28:30
WH_GETMESSAGEにてのメッセージフックでWM_MOVEを検知して移動先の座標を得ようと
しているんですが、pt.x,pt.yにでたらめな座標が入ってしまいます。何故でしょうか?

LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam){
    CWPSTRUCT *cwps;
    cwps=(CWPSTRUCT *)lParam;
    if(nCode<0)
        return CallNextHookEx(hMyHook,nCode,wParam,lParam);;
    if( nCode == HC_ACTION ){
        if(cwps->message==WM_MOVE){
            POINT pt;
            pt.x=LOWORD(cwps->lParam);
            pt.y=HIWORD(cwps->lParam);
        }
    }
    return CallNextHookEx(hMyHook,nCode,wParam,lParam);
}

あと同じようなので
if(cwps->message==WM_WINDOWPOSCHANGED)LPWINDOWPOS pos=(LPWINDOWPOS)cwps->lParam;
もpos->xとかにもでたらめな数字入ってしまう。
MSDNも何度も調べたし、色々な組み合わせを何時間もトライ&エラー繰り返してたんですが
やっぱり分かりません。教えてください

200:デフォルトの名無しさん
09/02/06 20:31:28
>>198
LoadLibraryするだけの単純なプログラムを書いて渡すっていうのじゃダメなの?
それともそれだけでは再現しないの?

201:デフォルトの名無しさん
09/02/06 20:35:32
>>199
マウス座標が cwps->hwnd が示す
ウィンドウ相対だからとか?


202:デフォルトの名無しさん
09/02/06 20:37:21
符号なしの値を符号付きの変数に代入してこけてるとか?

203:デフォルトの名無しさん
09/02/06 20:45:14
>>199
WH_GETMESSAGEでかけたフックのコールバックのlParamはMSG構造体なんだが

204:198
09/02/06 20:47:13
>>200
>>198です。
エラーが発生する条件が不明でエラーの発生頻度もあまり多くないんです
LoadLibrary()するだけのプログラムでも環境しだいでは再現するかもしれないんですが
再現するかもしれないから、ちょっと試してみてください、って言える関係じゃないんです


205:デフォルトの名無しさん
09/02/06 20:50:20
どっかに不定が紛れ込んでいるに1000ペリカ

206:デフォルトの名無しさん
09/02/06 21:45:10
>>202
ありがとうございます。まったくその通りでした。
MSDNに「1 個の 構造体へのポインタ」としか書いてなかったからCWPSTRUCTでいいと思ってた
今後のために教えてください。そういうのってどこに書いてます?
でも、これだとWM_MOVEが引っかからないから他のフックタイプ使うべきなのね

207:デフォルトの名無しさん
09/02/06 21:48:01
>>206
URLリンク(msdn.microsoft.com)(VS.85).aspx

確かに日本語ソースには「1 個の 構造体へのポインタを指定します。」とあるのなww
こやつめハハハ

208:デフォルトの名無しさん
09/02/06 22:05:21
英語の方には書いてあったのね。楽だからついつい日本語の方ばっかり見ちゃうけど
やっぱり英語の方も見たほうがいいですね

209:デフォルトの名無しさん
09/02/06 22:17:05
WH_CBTにしてHCBT_MOVESIZEを見るようにしたらいけました。
このまま教えてもらわなかったらまた何時間も悩み続けるところだったよ。ありがとう

210:デフォルトの名無しさん
09/02/07 01:18:37
なるほど
ありがとうございました

211:デフォルトの名無しさん
09/02/07 04:18:34
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

212:211
09/02/07 04:20:05
あ…スマン…Janeの裏技とか言うのみて試してたら書き込まれた(;´Д`)

213:デフォルトの名無しさん
09/02/07 07:18:02

 ヾヽヽ
 (´▽`) おっさんチュンチュン
  ミ_ノ
  ″″

214:デフォルトの名無しさん
09/02/07 07:28:09
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?

215:デフォルトの名無しさん
09/02/07 08:58:01
Before:
URLリンク(admins.fxdm.net)

After:
URLリンク(art3.photozou.jp)

216:デフォルトの名無しさん
09/02/07 09:27:24
質問です。
(A)
ツリービューで↓を書くと
   TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);
BorlandC++ が
   ”警告 W8019 : コードは効果を持たない”と
と吐くのですが、どういう意味なんでしょうか?

(B) また、
   SendMessage(hwndPB, PBM_SETRANGE, 0, MAKELPARAM(0,files_read));
と書くと
   ”警告 W8084 : 優先順位を明確にするためにカッコの使用を推奨”
と吐きます。どう括弧をつければいいのでしょうか?

217:デフォルトの名無しさん
09/02/07 09:46:22
URLリンク(docs.codegear.com)
URLリンク(docs.codegear.com)

あとはbccスレで聞け

218:デフォルトの名無しさん
09/02/07 10:48:40
まさか
TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);

TreeView_InsertItem(hwndTV, lpis);
ってことじゃないよなw

219:デフォルトの名無しさん
09/02/07 11:27:08
GetDC BeginText
で得たhdcの値は変わることってありますか?
あるとするならどんな時に変わりますか?

220:デフォルトの名無しさん
09/02/07 11:31:57
確保しっぱなしにしようとしてるのかもしれんが
その使い方が間違い

221:デフォルトの名無しさん
09/02/07 12:37:17
普通のウィンドウだと、DCはGetDC等が呼ばれた時にシステムから提供される。
毎回設定がリセットされるのはそのため。
Windows9x系だと、スレッド辺り5つまでしか貰えないから持ちっぱなしはあり得ない。
だがNT系なら多少メモリ喰う程度だけで済むので、今の時代なら構わないのかも。
まあ、CS_OWNDC付けとけばReleaseDCしても設定内容は維持されるから、
そっちを検討した方が良いとは思う。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5378日前に更新/103 KB
担当:undef