请问怎么样才能截获PropertySheet的确定、取消的消息??? 请问怎么样才能截获PropertySheet的确定、取消的消息??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IDDomodal()==IDOKIDDomodal()==IDCANCEL 在propertysheet中,在一般情况,当用户按"cancel",你的propertypage将收到PSN_QUERYCANCEL消息.当用户按"ok"的时候,如果"apply"是enabled的,那么你将收到PSN_APPLY消息. 在PropertyPage的派生类中响应 OnOK() OnCancel() OnApply()消息。 覆盖CPropertySheet类的OnCommand函数,截获按钮点击消息。实现如下:(摘自codeproject)BOOL CMyPropertySheet::OnCommand(WPARAM wParam, LPARAM lParam) {// allow message map overrideif (CWnd::OnCommand (wParam, lParam)) return TRUE; // crack message parametersUINT nID = LOWORD(wParam);HWND hWndCtrl = (HWND)lParam;int nCode = HIWORD(wParam); // set m_nModalResult to ID of button, whenever button is clickedif (hWndCtrl != NULL && nCode == BN_CLICKED){ if (::SendMessage(hWndCtrl, WM_GETDLGCODE, 0, 0) & (DLGC_BUTTON|DLGC_DEFPUSHBUTTON)) { LONG lStyle = ::GetWindowLong(hWndCtrl, GWL_STYLE) & 0x0F; if (lStyle == BS_PUSHBUTTON || lStyle == BS_DEFPUSHBUTTON || lStyle == BS_USERBUTTON || lStyle == BS_OWNERDRAW) { if (nID == IDOK) { // do whatever you want. return TRUE; } else if (nID == ID_APPLY_NOW) { // do whatever you want. return TRUE; } else if (nID == IDCANCEL) { // do whatever you want. return TRUE; } } } } return FALSE; } warning C4995: 'CDaoDatabase': name was marked as #pragma deprecated? 月底了,请各位及时结贴。 菜鸟一个小小的问题 有关内存不能written的问题 CreateProcess(rundll32.exe 的 问题 ? 关于.rtf文档和.txt文档 如何索检到由vc自动在wndDlgBar中建立的控件,并对它们进行操作。 文件读写的问题 内存泄漏,求救!! ATL中的错误! 一个很小的问题!!!!!!!!!!!!! MFC调试问题
IDDomodal()==IDCANCEL
(摘自codeproject)BOOL CMyPropertySheet::OnCommand(WPARAM wParam, LPARAM lParam)
{
// allow message map override
if (CWnd::OnCommand (wParam, lParam))
return TRUE;
// crack message parameters
UINT nID = LOWORD(wParam);
HWND hWndCtrl = (HWND)lParam;
int nCode = HIWORD(wParam);
// set m_nModalResult to ID of button, whenever button is clicked
if (hWndCtrl != NULL && nCode == BN_CLICKED)
{
if (::SendMessage(hWndCtrl, WM_GETDLGCODE, 0, 0) &
(DLGC_BUTTON|DLGC_DEFPUSHBUTTON))
{
LONG lStyle = ::GetWindowLong(hWndCtrl, GWL_STYLE) & 0x0F;
if (lStyle == BS_PUSHBUTTON || lStyle == BS_DEFPUSHBUTTON ||
lStyle == BS_USERBUTTON || lStyle == BS_OWNERDRAW)
{
if (nID == IDOK)
{
// do whatever you want.
return TRUE;
}
else if (nID == ID_APPLY_NOW)
{
// do whatever you want.
return TRUE;
}
else if (nID == IDCANCEL)
{
// do whatever you want.
return TRUE;
}
}
}
}
return FALSE;
}