新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 對(duì)話框按鈕簡(jiǎn)單使用實(shí)例

對(duì)話框按鈕簡(jiǎn)單使用實(shí)例

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò) 收藏

需要先添加對(duì)話框,并且修改確定按鈕的ID值

本文引用地址:http://m.butianyuan.cn/article/201609/303399.htm

.h文件

struct DecodeUint{
UINT meesage;
LONG (*fun)(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
};

#define dim(x) (sizeof(x)/sizeof(x[0]))

LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
LONG OnBtnClick(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

.c文件

#include
#include
#include Border.h
#include resource.h
#include

struct DecodeUint DlgMessage[] = {
WM_INITDIALOG,OnInit,
WM_COMMAND,OnCommand,
};

struct DecodeUint DlgCommand[] = {
IDBTN,OnBtnClick,
IDCANCEL,OnClose,
};

HINSTANCE g_hInst;
HWND hStatic;

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
g_hInst = hInstance;
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,About);
return 1;
}

BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
for (int i = 0;i dim(DlgMessage);i ++)
{
if (DlgMessage[i].meesage == message)
{
(*DlgMessage[i].fun)(hDlg,message,wParam,lParam);
}
}
return FALSE;
}

LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
for (int i = 0;i dim(DlgCommand);i ++)
{
if (DlgCommand[i].meesage == LOWORD(wParam))
{
(*DlgCommand[i].fun)(hDlg,message,wParam,lParam);
}
}

return TRUE;
}

LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
hStatic = CreateWindow(TEXT(static),TEXT(static text),WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER | SS_CENTERIMAGE,
10,10,200,200,hDlg,(HMENU)101,g_hInst,NULL);
return TRUE;
}

LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
EndDialog(hDlg,0);
return TRUE;
}

LONG OnBtnClick(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
//1 獲取文本內(nèi)容 修改對(duì)話框標(biāo)題
//TCHAR * pc;
//int count = Static_GetTextLength(hStatic);
//pc = new TCHAR[count+1];
//Static_GetText(hStatic,pc,count+1);
//SetWindowText(hDlg,pc);
//delete pc;

//2 設(shè)置按鈕不可用
Button_Enable(GetDlgItem(hDlg,IDCANCEL),FALSE);
return 0;
}



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉