MFC取消HtmlDialog對話框的"確定"和"取消"按鈕方法

我們把對話框的Style設置爲Child的時候會發現確定和取消按鈕會存在,即便你把界面上的“確定”“取消”按鈕去掉了發現他還是存在,而且排列方式是豎式,這時候有點是不是有點無奈呢?好那我們說說去掉這兩個默認按鈕的方法,還有去除他們的消息響應。

首先我們右擊解決方法的.rc文件,點擊查看代碼,找到對話框的ID比如我裏面有個子級對話框IDD_DIALOG_COMMAND,那我就找到它。這時候你發現在這個對話框代碼裏面有這麼兩行代碼:

DEFPUSHBUTTON "確定",IDOK,39,62,50,14
PUSHBUTTON "取消",IDCANCEL,103,62,50,14

把這兩行代碼刪除掉。

接着打開對應對話框的htm文件(比如你對對話框新建類CommandDlg)找到後打開他,你會看到這樣的一些代碼

<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<BODY ID=CCommandDlg BGCOLOR=LIGHTGREY>

<TABLE WIDTH=100%>
<TR>
<TD ALIGN=RIGHT>
<BUTTON STYLE="WIDTH:100" ID="ButtonOK">確定</BUTTON><BR>
<BUTTON STYLE="WIDTH:100" ID="ButtonCancel">取消</BUTTON>
</TD>
</TR>
<TR WIDTH=100% HEIGHT=75>
<TD ALIGN=CENTER VALIGN=BOTTOM>
TODO: 在此放置控件。
</TD>
</TR>
</TABLE>

恩,看到你要刪除的東西了沒有呢?把一下三行代碼刪除掉:

TODO: 在此放置控件。

<BUTTON STYLE="WIDTH:100" ID="ButtonOK">確定</BUTTON><BR>

<BUTTON STYLE="WIDTH:100" ID="ButtonCancel">取消</BUTTON>

好了控件刪除之後呢,接着我們刪除消息映射跟響應

單擊對話框類發現裏面有OnButtonCancel和OnButtonOK這兩個函數,點擊進入編輯把以下代碼刪除了:

HRESULT CTimeDlg::OnButtonOK(IHTMLElement* /*pElement*/)
{
 OnOK();
 return S_OK;
}

HRESULT CTimeDlg::OnButtonCancel(IHTMLElement* /*pElement*/)
{
 OnCancel();
 return S_OK;
}

還有消息映射:

	DHTML_EVENT_ONCLICK(_T("ButtonOK"), OnButtonOK)
	DHTML_EVENT_ONCLICK(_T("ButtonCancel"), OnButtonCancel)

如果你還想刪除他的ID,接着打開Resource文件把屬於此界面的按鈕ID也刪除了!

好了手工,這下運行看到tab的子級對話框中是不是已經沒有煩人的文本跟那兩個默認按鈕了呢!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章