28. oktober 2004 - 18:50
Der er
10 kommentarer og 1 løsning
edit-boxe i Win32
Hej eksperter.. Jeg er lige begyndt så småt at arbejde med Win32-API'et i C++.. Og jeg har lavet et lille program, som indeholder et tekst-felt og en knap. Men mangler nogle funktioner til at hive det indtastede ud af tekst-feltet. Og mangler også funktioner, så kan jeg putte noget tekst ind i et felt.. Har prøvet at lede på msdn.microsoft.com, men der er sQ mange ting, og de fleste resultater har noget med .NET frameworket at gøre. Hvis nogle har nogle tips til en mere overskuelig dokumentation, ville dette også være dejligt :) På forhånd tak!
Annonceindlæg fra DE-CIX
28. oktober 2004 - 20:25
#2
Og et lille eksempel: #include <windows.h> #include <stdio.h> #define IDC_EDIT 1200 #define IDC_PUSH 1220 HINSTANCE InstanceHandle; void OnButton(HWND hwndDlg) { char Msg[1024]; char Msg2[32 + 1024]; GetDlgItemText(hwndDlg, IDC_EDIT, Msg, sizeof(Msg)); sprintf(Msg2, "You wrote: %s", Msg); MessageBox(hwndDlg, Msg2, "-+-+-+-", MB_OK); SetDlgItemText(hwndDlg, IDC_EDIT, "My Text"); } LRESULT CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CREATE: { HWND Edit = CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE| ES_AUTOHSCROLL, 10, 10, 90, 20, hwndDlg, (HMENU)(IDC_EDIT), InstanceHandle, 0); CreateWindow("BUTTON", "PushMe", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, 10, 40, 90, 20, hwndDlg, (HMENU )(IDC_PUSH), InstanceHandle, 0); SetFocus(Edit); } break; case WM_COMMAND: if(LOWORD(wParam) == IDC_PUSH && HIWORD(wParam) == BN_CLICKED) { OnButton(hwndDlg); } break; } return DefWindowProc(hwndDlg, msg, wParam, lParam); }; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, INT nCmdShow) { WNDCLASS wc; InstanceHandle = hInstance; memset(&wc, 0, sizeof(WNDCLASS)); wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; wc.lpfnWndProc = DialogProc; wc.hInstance = InstanceHandle; wc.hbrBackground = (HBRUSH )(COLOR_BTNFACE + 1); wc.lpszClassName = "WhateverClass"; wc.hCursor = LoadCursor(NULL, IDC_ARROW); if(!RegisterClass(&wc)) return FALSE; HWND WindowHandle = CreateWindow("WhateverClass", "Whatever", WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_CAPTION | WS_BORDER | WS_SYSMENU, 100, 100, 100, 100, NULL, NULL, InstanceHandle, 0); MSG Msg; while(GetMessage(&Msg, WindowHandle, 0, 0xFFFF) > 0) { if(!IsDialogMessage(WindowHandle, &Msg)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } } return 0; }