ObjectARX使用MFC編寫對話框一?

Tags: 教程, 對話框,

使用Virtual Studio MFC 一步一步創建AutoCAD自定義對話框。

本教程基於已經創建了 ObjectARX 項目的基礎上進行的。

若不會創建,可參照本教程的前述系列(創建自定義實體系列)。

方法/步驟

右鍵點擊項目選擇添加類則出現如下對話框

選擇 MFC support class

輸入文件 ColRecDlg 後點擊添加。

ObjectARX使用MFC編寫對話框一

Class Name 輸入你想保存的類名(此處是ColRecDlg);

Base Class 選擇基類 CAcUiDialog ;

點擊完成生成了對話框類。

ObjectARX使用MFC編寫對話框一

到類資源項中 雙擊上一步創建的對話框ID(此處是 ID_COLRECDLG)

在對話框編輯器中選擇 button 按鈕。

ObjectARX使用MFC編寫對話框一

在 button1 上右鍵選擇屬性。

可以更改 caption 和 ID

caption 為按鈕上的文字。

ID 為該 button 的標識。

ObjectARX使用MFC編寫對話框一

設置之後切回到 ColRecDlgd 的 cpp 與 h 文件

就會出現如下的代碼。

在 void nDosColRecDlg::OnBnClicked_UpdataColumnData()

函數定義中輸入 MessageBox(_T("ok")) ;

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

下面為 ColRecDlg 添加 InitDialog 消息響應。

打開類視圖在 ColRecDlg 類上右鍵選擇屬性。出現 ColRecDlg 類屬性對話框。

ObjectARX使用MFC編寫對話框一

重寫 InitDialog 消息響應。

下圖中因為我已經選擇了重寫,故再次打開不第一次創建不同。

InitDialog 是在對話框被加載的時候,要執行的操作,比如子程序等。

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

添加了之後應出現如下代碼

在 OnInitDialog 中添加如下代碼

acutPrintf(_T("\n 對話框初始化 OK: %d") ,001) ;

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

添加 sd 命令, 用來顯示對話框。

在 sd 命令下添加如下代碼:

CAcModuleResourceOverride resOverride;

//顯示ObjectARX的模態對話框

ColRecDlg theDialog; (ColRecDlg 為創建的對話框類名)

theDialog.DoModal();

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

在 acrxEntryPoint.cpp 中加入包含文件 #include "ColRecDlg.h"

ObjectARX使用MFC編寫對話框一

編譯生成,加載之後輸入 sd 命令即可出現創建的對話框。

點擊更新按鈕,出現消息框“ok”

至此這個簡單的對話框程序就創建完成了,後面的步驟為廢棄的。

(由於本對話框是模態對話框,故初始化對話框的消息,在退出對話框才顯示)

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

Autodesk 類瀏覽工具,點擊刷新按鈕即可顯示上一步創建的對話框類。

在該類上單擊右鍵,選擇添加變量;

選擇私有類型 private;

變量類型輸入 CAcUiPickButton;

變量名輸入 ColCheck;

點擊完成即可生成如下圖所示代碼。

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

為 ColRecDlg 添加 InitDialog 消息響應。

打開類視圖在 ColRecDlg 類上右鍵選擇屬性。出現 ColRecDlg 類屬性對話框。

在該屬性對話框中點擊 “重寫”選項如下圖所示。

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

重寫 InitDialog 消息響應。

下圖中因為我已經選擇了重寫,故再次打開不第一次創建不同。

創建成功後應顯示如下代碼。

ObjectARX使用MFC編寫對話框一

ObjectARX使用MFC編寫對話框一

用同樣的方法重寫 OnCancel消息響應。

這兩個消息相應必須要創建的。

ObjectARX使用MFC編寫對話框一

相關問題答案