一个简单的SDK对话框示例代码:
SdkDlg.h
// SdkDlg.h: interface for the CSdkDlg class.
//
//
#if !defined(AFX_SDKDLG_H__07BCC7C2_1D4A_49A1_94DA_FF1F19D9B315__INCLUDED_)
#define AFX_SDKDLG_H__07BCC7C2_1D4A_49A1_94DA_FF1F19D9B315__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CSdkDlg
{
private:
static HANDLE m_hInstance;
HWND m_hWnd;
public:
CSdkDlg();
virtual ~CSdkDlg();
void OnOK();
void ShowModal();
static DWORD CALLBACK SdkDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
};
#endif // !defined(AFX_SDKDLG_H__07BCC7C2_1D4A_49A1_94DA_FF1F19D9B315__INCLUDED_)
SdkDlg.cpp
// SdkDlg.cpp: implementation of the CSdkDlg class.
//
//
#include "stdafx.h"
#include "SdkDlg.h"
#include "resource.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//
// Construction/Destruction
//
CSdkDlg::CSdkDlg()
{
}
CSdkDlg::~CSdkDlg()
{
}
void CSdkDlg::ShowModal()
{
// DialogBoxParam(GetModuleHandle(0), MAKEINTRESOURCE(IDD_DLG_SAMPLE), NULL, (DLGPROC)SdkDialogProc, (LPARAM)this);
DialogBox(NULL, MAKEINTRESOURCE(IDD_DLG_SAMPLE), NULL, (DLGPROC)SdkDialogProc);
}
DWORD CALLBACK CSdkDlg::SdkDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
EndDialog( hwndDlg, 0 );
Sleep(3000);
MessageBox(NULL, "", "", MB_OK);
break;
case IDCANCEL:
EndDialog( hwndDlg, 0 );
break;
default:
break;
}
}
return 0;
}
SdkDialog.rc
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/
#undef APSTUDIO_READONLY_SYMBOLS
/
// Chinese (P.R.C.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
/
//
// Dialog
//
IDD_DLG_SAMPLE DIALOG DISCARDABLE 0, 0, 187, 94
STYLE DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
WS_CAPTION | WS_SYSMENU
FONT 10, "System"
BEGIN
DEFPUSHBUTTON "OK",IDOK,32,66,50,14
PUSHBUTTON "Cancel",IDCANCEL,104,66,50,14
COMBOBOX IDC_COMBO1,20,18,48,30,CBS_DROPDOWN | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
END
/
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_DLG_SAMPLE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 180
TOPMARGIN, 7
BOTTOMMARGIN, 87
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // Chinese (P.R.C.) resources
/
#ifndef APSTUDIO_INVOKED
/
//
// Generated from the TEXTINCLUDE 3 resource.
//
/
#endif // not APSTUDIO_INVOKED
SdkDialog.cpp
// SdkDialog.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#include "SdkDlg.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
CSdkDlg dlg;
dlg.ShowModal();
return 0;
}