新建壹個項目、選擇win32項目,應用程序為windows程序,附加選項為空;在源代碼目錄中添加壹個後綴為.c的源文件。接下來就可以寫C代碼了。
用c語言中通過調用windows的api函數,來顯示窗口、菜單、滾動條、屏幕輸出。
在《windows程序設計》壹書中就有壹個例子,顯示壹個標準的windows窗口,並在繪圖區顯示壹個字符串。代碼如下:
#include<windows.h>LRESULT?CALLBACK?WndProc?(HWND,UINT,WPARAM,LPARAM);
int?WINAPI?WinMain(HINSTANCE?hInstance,HINSTANCE?hPrevInstance,PSTR?szCmdLine,int?iCmdShow)
{
static?TCHAR?szAppName[]=TEXT("HelloWin");
HWND?hwnd;
MSG?msg;
WNDCLASS?wndclass;
wndclass.style?=?CS_HREDRAW||CS_VREDRAW;
wndclass.lpfnWndProc?=?WndProc;
wndclass.cbClsExtra?=?0;
wndclass.cbWndExtra?=?0;
wndclass.hInstance?=?hInstance;
wndclass.hIcon?=?LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor?=?LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground?=?(HBRUSH)?GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName?=?NULL;
wndclass.lpszClassName?=?szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This?program?requires?Windows?NT!"),szAppName,MB_ICONERROR);
return?0;
}
hwnd?=?CreateWindow(szAppName,
TEXT("The?Hello?Program"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,iCmdShow);
//UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return?msg.wParam;
}
LRESULT?CALLBACK?WndProc(HWND?hwnd,UINT?message,WPARAM?wParam,LPARAM?lParam)
{
HDC?hdc;
PAINTSTRUCT?ps;
RECT?rect;
switch(message)
{
case?WM_CREATE:
//PlaySound(TEXT("C:\\Windows?Notify.wav"),NULL,SND_FILENAME|SND_ASYNC);
return?0;
case?WM_PAINT:
hdc?=?BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("Hello,?Windows?98!"),-1,&rect,?DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return?0;
case?WM_DESTROY:
PostQuitMessage(0);
return?0;
}
return?DefWindowProc(hwnd,message,wParam,lParam);
}
復制到剛才的.c文件中即可以編譯運行。