[英]I don't know how to use codeblocks win32 gui
我使用win32 GUI並在谷歌搜索后設法制作了某種界面,但我不知道如何讓按鈕做某事或讓integer從GUI中的文本框中獲取價值。
這是主要的
#include <windows.h>
#include <commctrl.h>
#include <stdio.h>
#include "resource.h"
HINSTANCE hInst;
BOOL CALLBACK DlgMain(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
{
}
return TRUE;
case WM_CLOSE:
{
EndDialog(hwndDlg, 0);
}
return TRUE;
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
}
}
return TRUE;
}
return FALSE;
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
hInst=hInstance;
InitCommonControls();
return DialogBox(hInst, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)DlgMain);
}
這是資源.rc
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"
//
// Dialog resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
DLG_MAIN DIALOG 0, 0, 125, 64
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Numar Factorial"
FONT 8, "Ms Shell Dlg"
{
EDITTEXT 0, 82, 10, 23, 16, ES_AUTOHSCROLL, WS_EX_LEFT
LTEXT "Introdu numarul\r\n", 0, 20, 13, 50, 17, SS_LEFT, WS_EX_LEFT
PUSHBUTTON "Confirma\r\n", 0, 40, 34, 45, 14, 0, WS_EX_LEFT
}
//
// Manifest resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 RT_MANIFEST ".\\manifest.xml"
資源.h
#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif
#define DLG_MAIN 100
清單.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
這是主要的 GUI 它顯示階乘數字,插入一個數字並確認,我希望程序通過該文本框獲取一個數字,並在您點擊確認后返回該數字的階乘。 我需要弄清楚如何讓按鈕做事,因為我是初學者,我的項目將在 2 天內到期。請幫忙。
您的 PUSHBUTTON 需要一個控件 ID。 而不是這個:
PUSHBUTTON "Confirma\r\n", 0, 40, 34, 45, 14, 0, WS_EX_LEFT
這個:
PUSHBUTTON "Confirma\r\n", IDC_BUTTON1, 40, 34, 45, 14, 0, WS_EX_LEFT
其中IDC_BUTTON1
是您的 resource.h 文件中的 id。 (例如#define IDC_BUTTON1 101
)
給你的編輯框類似的處理。
EDITTEXT IDC_EDIT1, 82, 10, 23, 16, ES_AUTOHSCROLL, WS_EX_LEFT
這樣您就可以使用 GetDlgItemText 來獲取該控件中的字符串:
然后您可以在對話框處理程序中處理單擊事件,如下所示:
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_BUTTON1:
{
wchar_t str[200];
GetDlgItemText(hwndDlg, IDC_EDIT1, str, 200);
HandleClick(str);
return TRUE;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.