Witam. Utworzyłem plik zasobów .res za pomocą programu ResEdit. W pliku znajduje się dialog o ID = 1000. Nie mam tylko pojęcia, jak otworzyć taki dialog w moim programie. Mógłbym prosić o drobną wskazówkę?
0
0
Znowu zabrakło informacji o jaki język chodzi, a później będzie znowu jakaś gratulacyjna dla mnie gównoburza w dziale społeczności, że w WinAPI język nie ma znaczenia. Dlatego podam przykład pod kątem Delphi, ten język w miarę znam.
//...
{$R nazwapliku.res}
//...
const
IDC_EMPTYDLG = 1000;
//...
function HiddenDlgProc(AHWnd : HWND; Msg : UINT; wParam : wParam; lParam : lParam) : LRESULT; stdcall;
begin
Result := LRESULT(False);
case Msg of
WM_CLOSE :
begin
PostQuitMessage(0);
end;
end;
end;
//...
var
Msg : TMsg;
DlgH : HWND;
begin
DlgH := CreateDialog(HInstance, MAKEINTRESOURCE(IDC_EMPTYDLG), 0, @HiddenDlgProc);
ShowWindow(DlgH, SW_SHOW);
while GetMessage(Msg, 0, 0, 0) do
begin
DispatchMessage(Msg);
end;
end;
//...
Edit: dopisałem dyrektywę kompilatora $R, bo tutaj dołączenie zasobów jest bardzo ważne.
0
olesio napisał(a):
Dlatego podam przykład pod kątem Delphi, ten język w miarę znam.
Dawno nie pisałem w czystym C, ale jeśli byśmy chcieli to zrobić w czystym WinAPI oraz C, to by wyglądało analogicznie. Trzeba utworzyć dialog za pomocą funkcji CreateDialog podając adres procedury okna i tyle. Żadnej filozofii tu nie ma.