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