Code:
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int iShow){
MSG msg;
hInstMain=hThisInstance;
hWndMain = CreateDialog(hThisInstance, MAKEINTRESOURCE(FRM_MAIN), HWND_DESKTOP, DialogProc);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
if(!IsDialogMessage(hWndMain, &msg)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return(0);
}
BOOL CALLBACK DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
static bool inTray(false); // If in systray or not
HMENU mPopup; // Popupmenu for systray
char chRet(0);// return from dialogproc
POINT p1; // Mousecoords
RECT r1; // Rectangle for WM_SIZE
switch(uMsg){
case WM_INITDIALOG:
hWndMain=hwnd;
SetClassLong(hWndMain, GCL_HICON, (long)LoadImage(hInstMain, MAKEINTRESOURCE(IDI_ICON_1), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE));
if(!InitForm())
DestroyWindow(hWndMain);
ShowWindow(hWndMain, SW_SHOW);
chRet=0;
break;
case WM_COMMAND:
switch(LOWORD(wParam)){
case MNU_FILE_CFG: // Setupmenu
frmSetup(&hInstMain, hWndMain, &ThD);
break;
case MNU_FILE_QUIT:
SendMessage(hWndMain, WM_CLOSE, 0, 0);
break;
case MNU_TOOLS_CUST:
frmToolsCust(&hInstMain, hWndMain, &ThD);
break;
case MNU_TOOLS_PROD:
frmToolsProd(&hInstMain, hWndMain, &ThD);
break;
case MNU_TOOLS_TRANS:
frmToolsTrans(&hInstMain, hWndMain, &ThD);
break;
case MNU_TOOLS_FIRM:
frmToolsFirm(&hInstMain, hWndMain, &ThD);
break;
case MNU_HLP_ABOUT:
frmAbout(&hInstMain, hWndMain);
break;
}
SetTxt(hWndMain, "Windowtest");
break;
case WM_SIZE:
if(wParam==SIZE_MINIMIZED && ThD.bToTray){
sysTrayAdd(hWndMain, LoadIcon(hInstMain, MAKEINTRESOURCE(IDI_ICON_DD)), "Testapp");
ShowWindow(hWndMain, SW_HIDE);
inTray = true;
}else{
GetClientRect(hWndMain, &r1);
MoveWindow(ThD.hWndLst, 1, 1, r1.right-1, r1.bottom-1, TRUE);
}
break;
case WM_ICONNOTIFY:
switch(lParam){
case WM_RBUTTONUP:
SetForegroundWindow(hWndMain);
GetCursorPos(&p1);
mPopup = CreatePopupMenu();
AppendMenu(mPopup, MF_STRING|MF_ENABLED, 1, "&Config");
AppendMenu(mPopup, MF_SEPARATOR, 0, 0);
AppendMenu(mPopup, MF_STRING|MF_ENABLED, 3, "&End");
switch(TrackPopupMenu(mPopup ,TPM_RIGHTALIGN|TPM_LEFTBUTTON|TPM_RETURNCMD, p1.x, p1.y,0, hWndMain , NULL)){
case 1:// Config
EnableWindow(hWndMain, FALSE);
frmSetup(&hInstMain, hWndMain, &ThD);
EnableWindow(hWndMain, TRUE);
break;
case 3:// End
SendMessage(hWndMain, WM_CLOSE, 0, 0); break;
}
break;
case WM_LBUTTONDBLCLK:
SetForegroundWindow(hWndMain);
sysTrayRemove();
inTray = false;
ShowWindow(hWndMain, SW_SHOWNORMAL);
break;
}
break;
case WM_CLOSE: // Close request
return(b(hwnd, "Exit program?", "Windowtest", MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2)!=IDYES?
-1:DestroyWindow(hWndMain));
case WM_DESTROY: // Unload
ThD.db->Close();
ReleaseMutex(ThD.mtDb);
if(inTray == true)
sysTrayRemove();
PostQuitMessage(0);
break;
}
return(chRet);
}
Am i supposed to create the mainwindow through WinAPI?