SonicUI在MFC中的使用

2021-09-06 13:16:33 字數 2772 閱讀 8964

1.新建乙個基於對話方塊、使用unicode庫的工程,工程名稱sonicuitest;

2.複製isonicui.h檔案到工程目錄下,新增此檔案進工程;

3.複製sonicuiud.dll、sonicuiud_dll.lib和sonicuiu.lib到工程目錄下(這些是自己編譯出來的);

4.在stdafx.h檔案,新增以下**:12

3456

#include

"isonicui.h"

#ifdef _debug 

#pragma comment(lib,"sonicuiud_dll")    //除錯時用debug動態庫 

#endif

#pragma comment(lib,"sonicuiu")        //發布時用release靜態庫(目錄下還需其他支援庫) 

using

namespace sonic_ui; 

5.在對話方塊標頭檔案,新增以下**:12

34protected:     

isonicwndeffect* g_peffect;            //視窗的效果引擎 

isonicstring* g_ptext[2];            //以關鍵字格式化字串 

void onclose(isonicstring * pstr, lpvoid);    //委託關閉 

6.在對話方塊建構函式,新增以下**:12

3g_peffect = null; 

g_ptext[0] = null; 

g_ptext[1] = null; 

7.在對話方塊oninitdialog初始化函式裡,新增以下**:

0102

0304

0506

0708

0910

1112

1314

1516

1718

1920

2122

2324

25bool csonicuitestdlg::oninitdialog()  

8.新增窗體變換後的委託事件**:12

34void csonicuitestdlg::onclose(isonicstring * pstr, lpvoid)  

9.窗體上新增3個按鈕,事件分別如下:

0102

0304

0506

0708

0910

1112

1314

1516

17void csonicuitestdlg::onbnclickedmovebutton() 

void csonicuitestdlg::onbnclickedalphabutton() 

void csonicuitestdlg::onbnclickedaniclosebutton()  

10.在對話方塊onpaint()函式裡面繪製文字,新增以下**:

0102

0304

0506

0708

0910

1112

1314

1516

void csonicuitestdlg::onpaint() 

else } 

11.編譯、執行程式,截圖如下:

sonicui對異形窗體,自繪按鈕等的支援。

1.首先準備素材檔案,一張png背景圖和一張png按鈕,匯入到上面工程的資源裡面,vs2008會自動分辨為「png」資源型別名。

再加入一張動態gif頭像,加入到新建「image」資源型別,id號為gif_userhead。再從「資源檢視」開啟idd_aboutbox對話方塊,刪除預設控制項,新增兩個edit控制項,設定其屬性border為false、multiline為true、want return為true。

2.在對話方塊的實現檔案,類caboutdlg裡面新增以下**:12

3456

7protected: 

isonicstring* g_pbutton;    //自繪按鈕 

isonicimage* g_pimgbutton;    //自繪按鈕 

isonicimage* g_pimgbg;        //背景 

isonicimage* g_pimguserhead;    //頭像 

isonicanimation* g_puserhead;    //頭像動畫 

void onclose(isonicstring* pstr, lpvoid);    //委託關閉事件 

3.過載caboutdlg的wm_paint訊息函式,剩下的**如下:

0102

0304

0506

0708

0910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

5354

bool caboutdlg::oninitdialog() 

void caboutdlg::onpaint() 

void caboutdlg::onclose(isonicstring * pstr, lpvoid)  

4.編譯、執行程式,截圖如下:

SonicUI在MFC中的使用

1.新建乙個基於對話方塊 使用unicode庫的工程,工程名稱sonicuitest 2.複製isonicui.h檔案到工程目錄下,新增此檔案進工程 3.複製sonicuiud.dll sonicuiud dll.lib和sonicuiu.lib到工程目錄下 這些是自己編譯出來的 4.在stdafx...

CGridCtrl在MFC中的使用

使用cgridctrl需要將原始碼中的將gridctrl src資料夾和newcelltypes內的所有檔案新增到自己的工程當中。建立基於對話方塊的mfc工程,選擇custom control拖動到對話方塊上,如下圖所示 在控制項的屬性對話方塊中設定class屬性為mfcgridctrl 必須 控制...

MFC事件在多執行緒中的使用

handle mthreadeventdead mthreadeventdead createevent null,true,false,null 上面建立了乙個事件,createevent的具體使用如下。handle winapi createevent in opt lpsecurity att...