Элементы управления окна создаются через CreateWindow(Ex), с заданными предопределенными классами. Где можно почитать про эти самые предопределенные классы - в частности интересует список (list) и поле ввода (edit или richedit), их параметры и обработка еще интересует обработка быстрых клавиш (accelerators)
Вот, почитай А быстрые клавиши - просто обработка нажатия пимпы. This is a C sourcecode for a simple BB1 Windows application with the name BB1CNTRS. This program demonstrates the use of the function CreateWindow for child window controls. The word "controls" means that they were created with a predefined window class such as BUTTON, STATIC, EDIT, and SCROLLBAR rather than registering a new window class. An child window will only be shown if the parent window is visible. Windows keeps track of child windows and updates them along with their parent (download this sourcecode, or download the Windows EXE of this sourcecode). Код (Text): // File...: BB1CNTRS.C (c) SOFTWARE SYSTEMS 1996 // Version: 1.00 // Date...: 04.Oct.1996 #include ‹windows.h› #define CHILD1 100 #define CHILD2 200 #define CHILD3 300 #define CHILD4 400 #define CHILD5 500 #define CHILD6 600 HANDLE ghInstance; // Global Instance // Prototyp WindowFunction long FAR PASCAL WndFunction (HWND, WORD, WORD, LONG); //**************************************************************************************** int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { static char szAppName[]= "BB1-CONTROLS", szTitleBar[]= "Title Bar"; HWND hwnd; WNDCLASS wndclass; MSG msg; // Register Class ghInstance= hInstance; if (! hPrevInstance) { wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndFunction; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); wndclass.hbrBackground= GetStockObject (WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName= szAppName; RegisterClass (&wndclass); } // Create Window with 320 * 240 dots at postion x=0, y=0 and show Window hwnd= CreateWindow (szAppName, szTitleBar, WS_OVERLAPPEDWINDOW, 0, // x position for this window 0, // y position for this window 320, // window width is 320 dots 240, // window height is 240 dots NULL, NULL, hInstance, NULL); ShowWindow (hwnd, nCmdShow); UpdateWindow (hwnd); // Dispatch Message or exit program while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return (msg.wParam); } //************************************************************************** long FAR PASCAL WndFunction (HWND hWnd, WORD wMsg, WORD wParam, LONG lParam) { HWND hButton, hCheckBox, hRadioButton, hStaticText, hEdit, hScroll; switch (wMsg) { // Create and show controls/child windows: 1.) PushButton Control case WM_PAINT: hButton= CreateWindow ("BUTTON", "Button", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 10, 100, 40, hWnd, CHILD1, ghInstance, NULL); ShowWindow (hButton, SW_SHOW); // 2.) CheckBox Control hCheckBox= CreateWindow ("BUTTON", "CheckBox", WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX, 180, 10, 120, 40, hWnd, CHILD2, ghInstance, NULL); ShowWindow (hCheckBox, SW_SHOW); // 3.) RadioButton Control hRadioButton= CreateWindow ("BUTTON", "RadioButton", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 180, 45, 120, 40, hWnd, CHILD3, ghInstance, NULL); ShowWindow (hRadioButton, SW_SHOW); // 4.) Static Text Control hStaticText= CreateWindow ("STATIC", "StaticTextControl", WS_CHILD | WS_VISIBLE, 10, 65, 160, 40, hWnd, CHILD4, ghInstance, NULL); ShowWindow (hStaticText, SW_SHOW); // 5.) Edit Control hEdit= CreateWindow ("EDIT", "Edit Control", WS_CHILD | WS_VISIBLE | WS_BORDER, 10, 100, 290, 40, hWnd, CHILD5, ghInstance, NULL); ShowWindow (hEdit, SW_SHOW); // 6.) Scroll Bar hScroll= CreateWindow ("SCROLLBAR", "", WS_CHILD | WS_VISIBLE | SBS_HORZ, 10, 150, 290, 40, hWnd, CHILD6, ghInstance, NULL); ShowWindow (hScroll, SW_SHOW); break; // Destroy Window case WM_DESTROY: PostQuitMessage (0); return (0); } return (DefWindowProc (hWnd, wMsg, wParam, lParam)); } For creating child windows with CreateWindow the WS_CHILD flag is used in each call. CreateWindow also needs the parent window handle hWnd. This allows CreateWindow to make the correct linkup of child and parent window. Notice that the first parameter in each of the calls to CreateWindow is a word that specifies the type of child window control being created: BUTTON, STATIC, EDIT, and SCROLLBAR. The second parameter is the text string that will show up inside the control or on the side of the radio button or check-box button. Scroll bars do not have text, so a null string is included.
Может в виндовсе есть стандартный класс табличного контрола? какой-нибудь аналог TStringGrid в Delphi. Если нет - прошу помощи в написании такого. В частности интересует выделение места после "window instance" (WNDCLASS.cbWndExtra) и как его потом использовать.
Перенес свой вопрос в отдельную тему: http://www.wasm.ru/forum/viewtopic.php?pid=210203#p210203 - ответы пожалуйста туда.