W Resources utworzyłam nowe okienko dialogowe, IDD_REPAIR_JDN - załącznik epbrsc.jpg.
Jednak pojawia mi się jakaś kupa - załącznik epberr.jpg.
Oto mój kod:
LRESULT CALLBACK PodajJednostkeDialogProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (uMsg)
{
case WM_INITDIALOG:
{
CenterWindow(hWnd);
return 0;
}
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDOK:
EndDialog( hWnd, TRUE );
DestroyWindow(hWnd);
return TRUE;
break;
case IDCANCEL:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
char napis[256];
std::string buff;
MSG msg;
int bRet;
sprintf(napis, "Pobrana struktura aktu prawnego: %s jest najprawdopdobniej błędna.\n\nPodaj jednostkę dla:", idAktu);
HWND okno_repair = CreateDialog(_Module.m_hInst, MAKEINTRESOURCE (IDD_REPAIR_JDN), NULL, (DLGPROC) PodajJednostkeDialogProc);
if (okno_repair != NULL)
{
SetDlgItemText(okno_repair, IDC_TEKST, napis);
SetDlgItemText(okno_repair, IDC_POM, pom);
ShowWindow(okno_repair, SW_SHOW);
SetForegroundWindow(okno_repair);
UpdateWindow(okno_repair);
while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0 )
{
if (bRet == -1)
{
break;
}
else if (!IsWindow(okno_repair) || !IsDialogMessage(okno_repair, &msg))
{
HWND okno_jdn = GetDlgItem(okno_repair, IDC_JDN);
buff = GetWindowText(okno_jdn);
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
DestroyWindow(okno_repair);
}
if (buff != "")
{
strcpy(cel, buff.c_str());
blad = false;
}
Generalnie to w ogóle nie chce dobrze działać, muszę robić coś karygodnie źle, tylko nie wiem co... Wygląda jak wygląda, to pierwsza sprawa, której totalnie nie kumam - po bokach prześwitują programy z pod spodu... Druga sprawa jest taka, że okienka nie da się przesunąć, zmienić rozmiaru. To przesuwanie to szczególnie mnie zastanawia - przecież to bardzo podstawowa, standardowa rzecz.
Oczywiście nie działa też pobieranie danych z pola tekstowego - to co tu widać to już jest szczyt mojej kombinatoryki, bo inne sposoby też nie działały. Co by nie było - w buff zawsze jest "". Jedyne co działa to guzik Cancel.
EDIT:
No i jestem w szoku, bo chyba jednak pobieranie tekstu działa oO Bardzo mnie to cieszy, ale okienko wciąż wygląda i zachowuje się dziwnie.