2012-06-25 6 views
2

Может ли кто-нибудь помочь мне найти обновленный, работающий проект ATL, в котором есть главное окно и некоторые компоненты в нем? Пожалуйста, ради любви к Богу, не говорите мне использовать WTL/Qt или другие. Мне нужен ATL. В этом нет ни одного обновленного проекта. Мне просто нужно главное окно, вот и все. Я могу выяснить остальное.Образец окна диалогового окна ATL

Заранее спасибо.

+0

Вы попытались создать его с использованием настроек по умолчанию? Обычно это срабатывает при запуске. – dirkgently

+0

Не знаю, почему вы так боитесь WTL, это значит заполнить недостающие части ATL. Я думаю, что это даже те же авторы. –

+0

@MarkRansom: OP должен был связать свои предыдущие вопросы, например. http://stackoverflow.com/questions/11171795/creating-uis-with-atl «Я читал, что WTL - лучший вариант для создания пользовательского интерфейса. Однако люди настаивали на ATL». –

ответ

5

ОК, для любви к Богу: проект Visual Studio 2010 C++/ATL EXE из диалогового окна шаблона +.

Источник:

Это вашей основной интерес:

//////////////////////////////////////////////////////////// 
// CMainDialog 

class CMainDialog : 
    public CDialogImpl<CMainDialog> 
{ 
public: 
    enum { IDD = IDD_MAIN }; 

BEGIN_MSG_MAP(CMainDialog) 
    MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) 
    COMMAND_ID_HANDLER(IDCANCEL, OnCommand) 
    COMMAND_ID_HANDLER(IDOK, OnCommand) 
END_MSG_MAP() 

public: 
// CMainDialog 

// Window Message Handlers 
    LRESULT OnInitDialog(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
    { 
     ATLVERIFY(CenterWindow()); 
     return 0; 
    } 
    LRESULT OnCommand(UINT, INT nIdentifier, HWND, BOOL& bHandled) 
    { 
     ATLVERIFY(EndDialog(nIdentifier)); 
     return 0; 
    } 
}; 

и

VOID RunMessageLoop() 
{ 
    CMainDialog Dialog; 
    Dialog.DoModal(); 
} 

enter image description here

+1

Я знаю, что вы побьете меня до смерти, но я получаю следующие ошибки: '1> C: \ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.CppCommon.targets (113,5): ошибка MSB3073: Команда «C: \ Users \ E \ Desktop \ rr \ Debug \ AtlDialogSample.exe»/RegServer 1> C: \ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.CppCommon.targets (113, 5): ошибка MSB3073:: VCEnd "вышла с кодом -2147319780. 'Большое спасибо. –

+1

Этот проект является полнофункциональным COM-сервером (потому что проект шаблона дает вам это, и я должен был добавить к нему минимальные изменения), и поэтому его запуск '/ regserver' пытается зарегистрироваться в системном реестре. Для этого необходимы повышенные привилегии. Это, однако, не кажется необходимым для пользовательского интерфейса. В общем, убедитесь, что вы создали из Visual Studio, запущенного как «Администратор». Или просто проигнорируйте эту ошибку. –

+0

+1 как я не сделал это, чтобы ответить ему вчера –