メッセージを送るには?

解決


タケル  2005-08-05 03:10:45  No: 58542  IP: 192.*.*.*

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

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 08:40:39  No: 58543  IP: 192.*.*.*

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

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

編集 削除
タケル  2005-08-05 12:05:20  No: 58544  IP: 192.*.*.*

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

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

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

編集 削除
Blue  2005-08-05 12:29:03  No: 58545  IP: 192.*.*.*

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

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

編集 削除
タケル  2005-08-05 18:36:29  No: 58546  IP: 192.*.*.*

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

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

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

編集 削除
・・・  2005-08-05 19:57:11  No: 58547  IP: 192.*.*.*

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

↓ではダメ?

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

編集 削除
Blue  2005-08-05 20:39:46  No: 58548  IP: 192.*.*.*

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-05 23:00:11  No: 58549  IP: 192.*.*.*

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

編集 削除