Win32API【2】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGやさしいお兄さんたちが答えてくれるかも。
ただし、質問する前にまずMSDN読め。
MSDN Online
http://www.asia.microsoft.com/japan/developer/
前スレ
http://pc.2ch.net/test/read.cgi/tech/991576947/
0936デフォルトの名無しさん
NGNGアクセラレータテーブルは作れるよ。MSDN調べてみるといい。
0937デフォルトの名無しさん
NGNGどうでもいいがWM_KEYDOWNで使うならGetKeyStateの方が普通。
0938デフォルトの名無しさん
NGNGサンクス、調べてみます。
WM_KEYDOWNだと、日本語キーボードで ';' ':'がたいてい別キーなのに、
VKコードが同じだったり使いづらいので、WM_CHARと併せて2回判定する必要が
ありそうだったので、困ってました。
0939デフォルトの名無しさん
NGNGCreateFontW に DEFAULT_CHARSETを設定してもだめだし、
どのようなパラメータでフォントを作成すればいいのでしょうか?
0940デフォルトの名無しさん
NGNGフォントとか色々インストールしてますか?
0941デフォルトの名無しさん
NGNG設定する方法を教えてください。
メニューと同じ名前のアクセラレータを作っただけでは働かず、
WM_INITDIALOGで LoadAccelerators(hInst, "samplemenu");
って感じにやっても働きませんでした。
0942デフォルトの名無しさん
NGNGTranslateAcceleratorやらなきゃ。
問題は、これをどこでやるかだ・・・
0943941
NGNG「メッセージループしてるところで捕らえる」、ってのは解ったのですが
DialogBox(...) でダイアログを作ってるので、何処がメッセージループに
なってるのかが解りません。
CreateDialog(...)に書き直すのは問題ないのですが、書き直さないで
実現できる方法は無いでしょうか?
0944デフォルトの名無しさん
NGNGCreateDialogBoxで作って、自分でメッセージループを回す
0945デフォルトの名無しさん
NGNGモーダルダイアログボックスは、メッセージループを自分で回してしまうので
無理。モーダレスダイアログボックスでモーダルダイアログボックスをエミュ
レートしましょう。MFC 使ってもいいけど。
0947デフォルトの名無しさん
NGNGバイナリは分けるしかないでしょうか?
同じバイナリにすると、OSによって読み込むdllファイルを動的にかえるってことを
しなければならないとおもうのですが、そんなことが果たして可能なのでしょうか?
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG> OSによって読み込むdllファイルを動的にかえる
LoadLibrary() 使いましょう。
0950947
NGNGでもラッパー関数ないでそのAPIを呼んだら同じことなんでは?
>>949
なるほど。
でもよく考えたら、やっぱりNTにないAPI関数がコードにある時点でだめなような
気がしてきました・・・
0951デフォルトの名無しさん
NGNGNTにないAPI関数をコードから取り除くためにLoadLibrary()を使うんだよ
GetVersionEx()を使って場合分けすれ
0952947
NGNGそうだったんですか・・・
わかりました。ちょっとMSDN逝って来ます。
0953947
NGNGおおざっぱなところでは、
if(version = WIN2000)
{
HINSTANCE hLib = LoadLibrary("aaa.dll");
if(hLib)
{
FARPROC fp2000API = GetProcAddress(hLib, "only2000Func");
if(fp2000API )
{
(*fp2000API)();
}
}
}
てなところでしょうか?
実は2つほど疑問があります。
0954947
NGNG# 今ところNTで実行するときにでてくるエラーダイアログからしかわからん(w
疑問2: 上記ロジックでやれば、ひょっとしてOSでの場合分けはいらないのでは?
# if(fp2000API)があるからなんですが。
0955デフォルトの名無しさん
NGNGa1-2 FindFirstなどで検索(一般のプラグイン実装とおなじやね)
a2 yes
0956947
NGNG>a1-1 決めうち
> a1-2 FindFirstなどで検索(一般のプラグイン実装とおなじやね)
なるほど。FindFirstFileでdllを探しにいうということですよね?
dllがなかったらあきらめると。
> a2 yes
ですよね。ありがとうございます。
0957947
NGNGありがとうございました。
0958デフォルトの名無しさん
NGNG同名の別仕様関数が隠しAPIなどで他のOS上に実装されて
いないことが保証されているなら場合分けの必要はないが
OSごとに処理ルーチンが異なるんだったら普通しとくもんだろ
0959デフォルトの名無しさん
NGNG文字列とデバイスコンテキストを渡してやると幅を返すような奴。
MSDNのテキストのとこには見つからなかったもので。
0960デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG新スレ立てマスタ
09631000!
NGNG0964デフォルトの名無しさん
NGNGが
UpdateWindow(hWnd);
より優れている点はありますか?
SendMessageでWM_PAINTを送るメリットを何一つ感じません。
0965デフォルトの名無しさん
NGNGなんでそんなことすんの?
0966デフォルトの名無しさん
NGNGそんなことって何?
0967デフォルトの名無しさん
NGNGwParamとlParamが0じゃイカンだろ(違
自分で勝手にWM_PAINTを送りつけても、クリッピング領域とか管理してないから
まともに再描画はされないぞ。メリットとか言う以前に仕様違反。
0968デフォルトの名無しさん
NGNGA window receives this message through its WindowProc function.
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_PAINT
WPARAM wParam, // not used
LPARAM lParam // not used
);
Parameters
wParam
This parameter is not used.
lParam
This parameter is not used.
だけど、確かwParamはたしかHDCを指してたような
0969WM_PAINT
NGNGsent by an application』. To force a window to draw into a specific
device context, use the WM_PRINT or WM_PRINTCLIENT message.
>だけど、確かwParamはたしかHDCを指してたような
For some common controls, the default WM_PAINT message processing
checks the wParam parameter. If wParam is non-NULL, the control
assumes that the value is an HDC and paints using that device context.
0970デフォルトの名無しさん
NGNGダブルクリックの時間はどうやって取得しますか?
二回目のクリックで、WM_LBUTTONDBLCLKが送られなくなるまでの時間。
ダブルクリック動作を手動で実装しなければいけなくなったので。
0971デフォルトの名無しさん
NGNG標準じゃないクラスの窓は、作者の実装次第。
WPARAMがゼロじゃない時はBeginPaint〜EndPaintを呼ばずにWPARAMを使う癖をつけてもいいかも。
0973970
NGNG0974デフォルトの名無しさん
NGNG最近のソフトによくあるアイコン付きのメニュー(Officeとかみたいの)
はAPIではどうやって作るんでしょう?
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG「Shift + Home」をAPIで押した状態にしたい。
その場合、どうすれば良いか?
ただし、keybd_event等はKey_Down等のイベントが起きるので
使いたくない!!
できれば、SendMessage(PostMessage)等が理想。
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGレス数が950を超えています。1000を超えると書き込みができなくなります。