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編寫對話框一

相關問題答案

Have any Question?

Let us answer it!