Ciao,
In questo caso (immagino tu non abbia mai preso a mano la programmazione win32) sarà il caso di iniziare a documentarsi e prepararsi ad un passaggio che spesso è volentieri non è proprio indolore.
Questo link può essere utile per aiutarti a capire come creare una prima semplice finestra:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows.asp
Ricorda che un applicativo win32 inizia con una WinMain (e non una classica main)... è bene magari cercare di rintracciare qualche tutorial introduttivo.
Il listato più semplice possibile che apre una finestra è. più o meno il seguente:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
LPSTR lpszClassName=\"Nome_classe\";
LPSTR lpszWindowName=\"Nome_finestra\";
HWND hWnd=NULL;
INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR lpCmdLine,int nCmdShow){
WNDCLASS wc;
MSG msg;
bool done=false;
wc.style=CS_VREDRAW|CS_HREDRAW;
wc.lpszMenuName=NULL;
wc.lpszClassName=lpszClassName;
wc.lpfnWndProc=WndProc;
wc.hInstance=hInst;
wc.hIcon=(HICON)NULL;
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wc.cbWndExtra=0;
wc.cbClsExtra=0;
if(!RegisterClass(&wc)) return 0L;
hWnd=CreateWindow(lpszClassName,lpszWindowName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInst,NULL);
if(!hWnd){UnregisterClass(lpszClassName,hInst);return 0L;}
ShowWindow(hWnd,SW_NORMAL);
UpdateWindow(hWnd);
while(!done){
if(PeekMessage(&msg,0,0,0,PM_NOREMOVE)){
if(GetMessage(&msg,0,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}else{
done=true;
}
}else{
//... la finestra non sta processando messaggi...
}
}
return (int)msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){
switch(uMsg){
case WM_CLOSE:
PostQuitMessage(0);
return 0L;
default:
break;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}