メッセージを送るには?

解決


タケル  2005-08-05 12:10:45  No: 58542

メッセージの送り方が、わからなく質問させていただきます。

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)

case WM_COMMAND:
    switch(LOWORD(wp)){
        case ID_LIST:    //リストボックスのID
            if(HIWORD(wp) == LBN_SELCHANGE){
            }
        break;
    break;

このとき、LBN_SELCHANGEにメッセージを送りたいのです。
どのようにすれば、よいのでしょうか?
分かる方がいましたら、ご指導お願いします。


Blue  2005-08-05 17:40:39  No: 58543

> このとき、LBN_SELCHANGEにメッセージを送りたいのです。
このときとは?
書かれているのはメッセージを受け取るほうなのでは?

LBN_SELCHANGEのメッセージを受け取る側から
再度LBN_SELCHANGEを送るのですか?


タケル  2005-08-05 21:05:20  No: 58544

Blueさん、返信ありがとうございます。

このときというのは、ここに書いたプログラムのときということで、別な場所からここに書いた、LBN_SELCHANGEへメッセージを送りたいのです。

わかりにくく書いてしまってすいませんでした。


Blue  2005-08-05 21:29:03  No: 58545

> ここに書いたプログラムのときということで、別な場所からここに書いた、LBN_SELCHANGEへメッセージを送りたいのです。
ならばウィンドウプロシージャのソースを載せる必要はなかったかと。

WM_COMMANDをSendMessageすればいいのでは?
WPARAM,LPARAMは
>    switch(LOWORD(wp)){
>      case ID_LIST:    //リストボックスのID
>          if(HIWORD(wp) == LBN_SELCHANGE){
>          }
>      break;
の処理をしているくらいだからわかりますよね?


タケル  2005-08-06 03:36:29  No: 58546

Blueさん、返信ありがとうございます。

自分も、WM_COMMANDをSendMessageすれば、いいというのは思いついたのですが、
SendMessage(hWnd,WM_COMMAND,ID_LIST,LBN_SELCHANGE);
そして、LPARAMも処理するようにしました。

これで、いいのでしょうか?
いちおは、動いていますが自信が、ないのです。


・・・  2005-08-06 04:57:11  No: 58547

#Blueさんは、添削請負人ではありません

↓ではダメ?

case WM_COMMAND:
    switch(LOWORD(wp)){
        case ID_LIST:    //リストボックスのID
            if(HIWORD(wp) == LBN_SELCHANGE){
                // ここにダミーコード入れて、ブレークポインタを設定
            }
        break;
    break;


Blue  2005-08-06 05:39:46  No: 58548

HIWORD( wp ) = LBN_SELCHANGE

LOWORD( wp ) = ID_LIST
ということなので

wp の値がどんなものかわかると思いますが。

lp は リストボックスのウィンドウハンドルです。

よって
SendMessage( hWnd,
             WM_COMMAND,
             MAKEWPARAM( ID_LIST, LBN_SELCHANGE ),
             reinterpret_cast< LPARAM >( hListBoxWnd ) );
です。


タケル  2005-08-06 08:00:11  No: 58549

やっと、解決することができました。
みなさん、本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加