1.新建atl项目,选可执行文件exe及合并存根,不要属性化
2. 在头文件相应加入
#include <commctrl.h>
#pragma comment(lib, "comctl32.lib")
3._tWinMain函数内修改成这样
extern "C" int WINAPI _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/,
LPTSTR /*lpCmdLine*/, int nShowCmd)
{
INITCOMMONCONTROLSEX iccControl;
iccControl.dwSize = sizeof(iccControl);
iccControl.dwICC = ICC_STANDARD_CLASSES;
::SetPriorityClass(::GetCurrentProcess(), IDLE_PRIORITY_CLASS);
_AtlModule.InitializeCom();
::InitCommonControlsEx(&iccControl);
::AtlAxWinInit();
//以上加载常用的设置
CMainDlg dlgMain;//这里就是新建的对话框模板类了
dlgMain.DoModal();
_AtlModule.UninitializeCom();
return 0;
}
3.新建对话框模板类
class CMainDlg :
public ATL::CAxDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDIALOG };
BEGIN_MSG_MAP(CMainDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_CLOSE, OnClose)
COMMAND_ID_HANDLER(IDOK, OnOK)
END_MSG_MAP()
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
LRESULT OnClose(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/);
LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
};
4.最后将项目属性的生成事件里所有设置去除,否则编译的时候就运行这个exe了