Сейчас я работаю над настольным приложением для Windows с Windows API. Я новичок в API, поэтому разрабатываю его с помощью визуальной помощи, предоставленной сообществом Visual Studio.
Структура проста: у меня есть главное окно, в которое я помещаю некоторые текстовые поля и меню.
Если я создам окно следующим образом:
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDD_MENU1 MENU
BEGIN
POPUP "Archivo"
BEGIN
MENUITEM "Cargar programa", ID_LOADPROGRAM
MENUITEM "Cargar campaña", ID_LOADCAMPAING
MENUITEM "Salir", ID_EXIT
END
POPUP "Generar"
BEGIN
MENUITEM "Informe de instrucciones", ID_GENERAR_INFORMEDEINSTRUCCIONES
MENUITEM "Archivo RAM", ID_GENERAR_ARCHIVORAM
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_DIALOG1 DIALOGEX 0, 0, 1600, 900
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CAPTION | WS_SYSMENU
CAPTION "Emulador"
MENU IDD_MENU1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
EDITTEXT IDC_TEXTBOX,10,10,387,824,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP
EDITTEXT IDC_RAMBOX,407,477,785,309,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP
EDITTEXT IDC_SEARCHBOX,407,796,785,38,ES_AUTOHSCROLL | NOT WS_TABSTOP
EDITTEXT IDC_TERMINALBOX,407,60,785,405,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP
EDITTEXT IDC_REGISTERSBOX,1202,10,374,824,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP
END
Было бы неплохо иметь все диалоговые окна в файле ресурсов, поэтому, если есть другой способ сделать это, сообщите мне.
ПРИМЕЧАНИЕ. Кроме того, по какой-либо причине, когда я использую первую форму, размеры окна правильные, но если я использую вторую форму, то окно будет больше, чем указанные мной размеры.ПРИМЕЧАНИЕ.>
Сейчас я работаю над настольным приложением для Windows с Windows API. Я новичок в API, поэтому разрабатываю его с помощью визуальной помощи, предоставленной сообществом Visual Studio. Структура проста: у меня есть главное окно, в которое я помещаю некоторые текстовые поля и меню. Если я создам окно следующим образом: [code]int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int cShow) {
while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
return msg.wParam; } [/code] Меню отображается, но если я наведу курсор на какой-либо элемент, опция этого элемента не появится. [img]https://i.stack.imgur.com/s6EHS.png[/img]
У меня есть ресурс меню и ресурс диалога: [code]///////////////////////////////////////////////////////////////////////////// // // Menu //
IDD_MENU1 MENU BEGIN POPUP "Archivo" BEGIN MENUITEM "Cargar programa", ID_LOADPROGRAM MENUITEM "Cargar campaña", ID_LOADCAMPAING MENUITEM "Salir", ID_EXIT END POPUP "Generar" BEGIN MENUITEM "Informe de instrucciones", ID_GENERAR_INFORMEDEINSTRUCCIONES MENUITEM "Archivo RAM", ID_GENERAR_ARCHIVORAM END END
IDD_DIALOG1 DIALOGEX 0, 0, 1600, 900 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CAPTION | WS_SYSMENU CAPTION "Emulador" MENU IDD_MENU1 FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN EDITTEXT IDC_TEXTBOX,10,10,387,824,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP EDITTEXT IDC_RAMBOX,407,477,785,309,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP EDITTEXT IDC_SEARCHBOX,407,796,785,38,ES_AUTOHSCROLL | NOT WS_TABSTOP EDITTEXT IDC_TERMINALBOX,407,60,785,405,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP EDITTEXT IDC_REGISTERSBOX,1202,10,374,824,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP END [/code] Было бы неплохо иметь все диалоговые окна в файле ресурсов, поэтому, если есть другой способ сделать это, сообщите мне. ПРИМЕЧАНИЕ. Кроме того, по какой-либо причине, когда я использую первую форму, размеры окна правильные, но если я использую вторую форму, то окно будет больше, чем указанные мной размеры.ПРИМЕЧАНИЕ.>