我需要一个在SDK里的BN_CLICKED . BN_DISABLE . BN_HILTIE 这些通知码的使用我这里有个不成功的代码段:
switch( LOWORD(wParam) )
{
case IDC_BUTTON_TEST:
switch(HIWORD(wParam))
{
case BN_CLICKED:
MessageBox(hDlg,L"BN_CLICKED",NULL,MB_OK);
SendDlgItemMessage(hDlg,IDC_BUTTON_TEST,BN_DISABLE,1,0);
break;
case BN_DISABLE:
MessageBox(hDlg,L"BN_DISABLE",NULL,MB_OK);
break;
case BN_DOUBLECLICKED:
MessageBox(hDlg,L"BN_DOUBLECLICKED",NULL,MB_OK);
break;
case BN_SETFOCUS:
MessageBox(hDlg,L"BN_SETFOCUS",NULL,MB_OK);
break;
case BN_KILLFOCUS:
MessageBox(hDlg,L"BN_KILLFOCUS",NULL,MB_OK);
break;
} //SendDlgItemMessage(hDlg,IDC_BUTTON_TEST,BN_DISABLE,wParam<<8,0); //MessageBox(hDlg,L"BN_CLICKED",NULL,MB_OK);
break;
}
switch( LOWORD(wParam) )
{
case IDC_BUTTON_TEST:
switch(HIWORD(wParam))
{
case BN_CLICKED:
MessageBox(hDlg,L"BN_CLICKED",NULL,MB_OK);
SendDlgItemMessage(hDlg,IDC_BUTTON_TEST,BN_DISABLE,1,0);
break;
case BN_DISABLE:
MessageBox(hDlg,L"BN_DISABLE",NULL,MB_OK);
break;
case BN_DOUBLECLICKED:
MessageBox(hDlg,L"BN_DOUBLECLICKED",NULL,MB_OK);
break;
case BN_SETFOCUS:
MessageBox(hDlg,L"BN_SETFOCUS",NULL,MB_OK);
break;
case BN_KILLFOCUS:
MessageBox(hDlg,L"BN_KILLFOCUS",NULL,MB_OK);
break;
} //SendDlgItemMessage(hDlg,IDC_BUTTON_TEST,BN_DISABLE,wParam<<8,0); //MessageBox(hDlg,L"BN_CLICKED",NULL,MB_OK);
break;
}
你响应的消息应该是WM_COMMAND吧?
switch语句里面应该使用高位表示通知码 switch (HIWORD(wParam))
{
case WM_NOTIFY:
再嵌套你的
switch( LOWORD(wParam) )
{
case IDC_BUTTON_TEST:
switch(HIWORD(wParam))
{
case BN_CLICKED:
MessageBox(hDlg,L"BN_CLICKED",NULL,MB_OK);
SendDlgItemMessage(hDlg,IDC_BUTTON_TEST,BN_DISABLE,1,0);
break;
case BN_DISABLE:
MessageBox(hDlg,L"BN_DISABLE",NULL,MB_OK);
break;
case BN_DOUBLECLICKED:
MessageBox(hDlg,L"BN_DOUBLECLICKED",NULL,MB_OK);
break;
case BN_SETFOCUS:
MessageBox(hDlg,L"BN_SETFOCUS",NULL,MB_OK);
break;
case BN_KILLFOCUS:
MessageBox(hDlg,L"BN_KILLFOCUS",NULL,MB_OK);
break;
}
}
另外,似乎还要给你的IDC_BUTTON_TEST控件增加Notify属性(这样他的状态变化就会通知主窗口)