您的位置:首页 > 其它

vs.net2005用atl项目创建应用程序

2007-06-27 22:18 309 查看
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了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  winapi exe class command c
相关文章推荐