Win32API質問箱 Build61

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2008/02/02(土) 23:16:09
>>950なんという技術者ネカマ・・・
953デフォルトの名無しさん:2008/02/02(土) 23:40:03
timeSetEvent()使って10ms周期に決まった処理させてるんですけど
PCに負荷かけて10ms周期だと処理が間に合わなくなった場合、タイマってどう動作するんですか?

間に合わなかった場合その周の処理は破棄されるか、数ms遅れでも実行されるかのどっちかだと思うんですけど…。
954デフォルトの名無しさん:2008/02/02(土) 23:53:02
OSによる。
955デフォルトの名無しさん:2008/02/03(日) 00:05:51
NT系統は、平均発生数を満たすように、
遅れて連発実行される、ってどっかで聞いた。
956デフォルトの名無しさん:2008/02/03(日) 00:07:50
LPSTRってchar*のポインタ演算や*test='a'みたいな変更出来ない版?
参考書見てもcharやTCHARで済ましててLPSTR使ってないからどういう時に使えばいいのか
わからないんだけど、例えばどういう風に使うものですか?
957デフォルトの名無しさん:2008/02/03(日) 00:09:22
ファイルをコピーするときのバッファサイズを設定する方法ってWin32APIの中にありますか?
958デフォルトの名無しさん:2008/02/03(日) 00:19:20
>>956
参考書順繰りに読めよ
LPSTRをcharやTCHARで済ましてるって所が全てを物語ってるだろ
959デフォルトの名無しさん:2008/02/03(日) 00:28:11
つーか、LPSTRってchar*のtypedefだし。
960デフォルトの名無しさん:2008/02/03(日) 00:33:13
>>956
LPSTRって何をtypedefしたものか知ってる?
さらにLPCSTRやらLPTSTRやらLPCTSTRやら色々あるけど
その中の「C」「T」「LP」が何を意味しているかも。
961960:2008/02/03(日) 00:35:31
先に答え書かれてたorz
962デフォルトの名無しさん:2008/02/03(日) 00:44:30
LPはロングポインタ
Cはコンスト
TはUNICODE
STRは文字列

でおk?
963デフォルトの名無しさん:2008/02/03(日) 00:47:23
LPSTR : long pointer to string
LPWSTR : long pointer to wide string
LPTSTR : long pointer to text string
LPCSTR : long pointer to const string
LPCWSTR : long pointer to const wide string
LPCTSTR : long pointer to const text string
964デフォルトの名無しさん:2008/02/03(日) 00:50:22
>>962
Unicode は W (Wide)
965デフォルトの名無しさん:2008/02/03(日) 00:51:12
Tはテキストか
966デフォルトの名無しさん:2008/02/03(日) 00:52:29
ロングって何がロングなんだろ、って人もいるのかね。
最近は 64 ビット環境があるからそうでもないか。
967デフォルトの名無しさん:2008/02/03(日) 00:54:02
時々WPARAMとLPARAMについて質問が出るな
968デフォルトの名無しさん:2008/02/03(日) 00:54:46
もう Word サイズじゃないのに WPARAM
969デフォルトの名無しさん:2008/02/03(日) 01:19:01
ありがとうございます。LPSTRってchar型のポインタの構造体なんですね
未だにどういう時に使うのか分からないけどとりあえず解決しました
970デフォルトの名無しさん:2008/02/03(日) 01:21:51
どこから構造体が出てきたんだw
971デフォルトの名無しさん:2008/02/03(日) 01:31:55
char型のポインタの再定義をしてるのか!
やっと分かりました。ありがとう
972デフォルトの名無しさん:2008/02/03(日) 01:33:06
SZ
973デフォルトの名無しさん:2008/02/03(日) 01:43:40
char *p;
LPSTR lp;
と宣言したとすると*をとった「p」と「lp」が同じ意味
*lpとするとポインタ演算も一文字単位の代入もできる
974デフォルトの名無しさん:2008/02/03(日) 03:52:51
ボタンにアイコンを描写したくていろいろ調べた結果
ボタンにメッセージを送れということで

リソースにボタン(アイコン表示チェックボックスチェック)とアイコンを作ってWM_INITDIALOGで
::SendMessage(GetDlgItem(hWnd, IDC_BUTTON1),
          BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetDlgItem(hWnd, IDI_ICON1));
とやったんだが出ないのはなぜでしょうか?

VC++ 6.0, OSはXPです。
何が間違っているかさっぱりなので誰か指摘お願いします。
975デフォルトの名無しさん:2008/02/03(日) 04:22:16
描写とか言っちゃうプログラマって・・・w
976デフォルトの名無しさん:2008/02/03(日) 04:30:59
いいからさっさと教えろよ
977デフォルトの名無しさん:2008/02/03(日) 05:25:21
お前がさっさと教えろよ
978デフォルトの名無しさん:2008/02/03(日) 05:26:09
GetDlgItemでアイコン取れんの?
979デフォルトの名無しさん:2008/02/03(日) 07:51:15
HWND GetDlgItem(HWND,int);
~~~~
(HICON) SendMessage(GetDlgItem(hWnd, IDI_ICON1),BM_GETIMAGE,IMAGE_ICON,0);
980デフォルトの名無しさん:2008/02/03(日) 15:54:11
&rha
981デフォルトの名無しさん:2008/02/03(日) 22:49:48
通知領域のアイコンをクリックしたときにメニューを表示させたいと思っています。
下のようにメニュー項目の1個がサブメニューを持っていて、

項目A
項目B --> 項目D
項目C 項目E
項目F

こんな感じで、項目ABCは固定の文字列で、DEFはそのつど変わる感じなのですが。
これを作るとなると、ABCも含めてInsertMenu()あたりを使わないと実現できないのでしょうか?

できれば固定のABCはリソースファイルで持っておけたらいいなと思うのですが
982981:2008/02/03(日) 22:54:32
orz..

こんな感じのを書きたかった。

A
B → D
C   E
    F
983デフォルトの名無しさん:2008/02/03(日) 23:06:48
CreateWindowで指定するウィンドウサイズは、
タイトルバーやウィンドウの縁の幅も含んでいるのでしょうか?
984デフォルトの名無しさん:2008/02/03(日) 23:09:42
>>981
ABCはリソースでできるでしょ。
「いいなと思うのですが」なんて言わずに
実際やってみればいいのに。
985デフォルトの名無しさん:2008/02/03(日) 23:09:48
  〜皿


    只只  只只只只
    只只  只只只
      |

      凸
986デフォルトの名無しさん:2008/02/03(日) 23:14:53
>>983
含むよ
987デフォルトの名無しさん:2008/02/03(日) 23:23:00
DrawTextで最初の が表示されないですが。
どうすればそのまま表示できますか?
988デフォルトの名無しさん:2008/02/03(日) 23:50:59
証券会社が作ってるソフトがあって、
それに自動ログインさせるソフトを作ろうとしてます。

ログインID  [ ]
パスワード  [ ]
                  OK

みたいな画面です。

「ログインID」って文字列はspy++で見たところ、
staticだったのでFindWindowでウィンドウハンドルを取得して、
書き換えることが出来たのですが、
その横のEditの部分のウィンドウハンドルを取得することが出来ませんでした。
どうすればいいのでしょうか
989デフォルトの名無しさん:2008/02/03(日) 23:53:00
>>988
何がやりたいのか書かないと意味不明
990デフォルトの名無しさん:2008/02/04(月) 00:01:05
>>989
やりたい事はウィンドウハンドルを取得して、文字列を突っ込みたいのです。

ログインID  [   ]
↑       ↑
Static  Edit

となっていて、
「ログインID」の方のウィンドウハンドルを取得してSetTextで文字列を変更するのは出来る。

でもEditの方はウィンドウハンドルが取得出来ないので、
Editの場合は、ウィンドウハンドルを取得するのに何かコツがいるのか知りたいのです。
991デフォルトの名無しさん:2008/02/04(月) 00:03:55
ダイアログボックスにエディットボックスを乗せCreateDialogで表示させた時
エディットボックスに来てるキー入力のメッセージを取得するにはどうすれば良いのでしょうか?

環境はOSがXPで、VC++6.0を使ってます
m(_ _)m
992デフォルトの名無しさん:2008/02/04(月) 00:06:46
WM_INITDIALOGあたりでEditBoxをサブクラス化すれば。
993デフォルトの名無しさん:2008/02/04(月) 00:09:37
GetWindowText
GetDlgItem
994デフォルトの名無しさん:2008/02/04(月) 00:15:52
>>990
spyでウィンドウハンドル取れないなら、自前で取れる気がしないな。
子ウィンドウ含めて取れるだけのウィンドウハンドル取ってみて、
セットテキストしてみて調べる。
それでもダメだったらSendInputぐらいしか思いつかない。

マルウェア対策で疑似Editを自作してるのかもね。
995デフォルトの名無しさん:2008/02/04(月) 00:48:54
>>968
64bit環境のWPARAMは64bitだな。
WPARAMにポインタを入れてるメッセージがあるから
996デフォルトの名無しさん:2008/02/04(月) 02:38:38
時期も時期なので、次スレ立ててきますね。
997デフォルトの名無しさん:2008/02/04(月) 02:46:53
Win32API質問箱 Build62
http://pc11.2ch.net/test/read.cgi/tech/1202060403/

立てたのはいいんだけど、過去ログリストが貼れない…
998デフォルトの名無しさん:2008/02/04(月) 12:27:24
手伝ってあげないんだからね!
999デフォルトの名無しさん:2008/02/04(月) 12:36:46
ツンデレキター
1000デフォルトの名無しさん:2008/02/04(月) 12:50:44
カレーに1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。