Przeszukaj forum
Pokazuję wyniki dla tagów 'dialogboxparam'.
Znaleziono 1 wynik
-
Hej Wszystkim Mam dialoga w nim dwa pola IDC_EDIT1 i IDC_EDIT2, wszystko mam opakowane w klasę DialogWnd.h http://pastebin.com/GyJPBqJu #pragma once #pragma comment(linker, \ "\"/manifestdependency:type='Win32' "\ "name='Microsoft.Windows.Common-Controls' "\ "version='6.0.0.0' "\ "processorArchitecture='*' "\ "publicKeyToken='6595b64144ccf1df' "\ "language='*'\"") #pragma comment(lib, "ComCtl32.lib") #include <windows.h> #include <tchar.h> #include <CommCtrl.h> #include "resource.h" class DialogWnd { private: HWND hDialog; BOOL ret; MSG msg; public: DialogWnd(); DialogWnd(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCmdLine, int nCmdShow); ~DialogWnd(); int WINAPI InitWindow(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCommandLine, int nCmdShow); static INT_PTR CALLBACK DialogProc(HWND hDialog, UINT uMsg, WPARAM wParam, LPARAM lParam); }; DialogWnd.cpp http://pastebin.com/6Eg12t0f #include "DialogWnd.h" DialogWnd::DialogWnd() { InitCommonControls(); InitWindow(0, 0, 0, 0); } DialogWnd::DialogWnd(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCmdLine, int nCmdShow) { InitCommonControls(); InitWindow(hInstance, h0, lpCmdLine, nCmdShow); } DialogWnd::~DialogWnd() {} int DialogWnd::InitWindow(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCommandLine, int nCmdShow) { hDialog = reinterpret_cast<HWND>(DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG), 0, DialogProc, 0)); ShowWindow(hDialog, nCmdShow); while ((ret = GetMessage(&msg, 0, 0, 0)) != 0) { if (ret == -1) return -1; if (!IsDialogMessage(hDialog, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return 0; } INT_PTR DialogWnd::DialogProc(HWND hDialog, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: SetDlgItemText(hDialog, IDC_EDIT1, _T("off")); return TRUE; case WM_CLOSE: return TRUE; case WM_DESTROY: PostQuitMessage(0); return TRUE; } return FALSE; } i teraz chciałbym mieć metodę, która a) odpowiednio zmieni mi IDC_EDIT1 / IDC_EDIT2 na "coś" ( SetDlgItemText? ), b) będzie wywoływana z innej klasy wydaje mi się, że problem stanowi msgloop, nie wiem jak to ugryźć, wskazówki mile widziane