完整程序如下:
#include<windows.h>
#include<stdlib.h>//系统的标准库
#include<string.h>long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);//消息处理函数的原形
BOOL InitWindowsClass(HINSTANCE hInstance);//初始化窗口类的函数原形
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);//定义初始化窗口函数原形
HWND hWndMain;//定义主窗口的句柄//主函数
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstnce,LPSTR lpCmdLine,int nCmdShow)
{
MSG Message;
if(!InitWindowsClass(hInstance)) return false;
if(!InitWindows(hInstance,nCmdShow)) return false;
while(GetMessage(&Message,0,0,0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
HDC hDC;
HBRUSH hBrush;
HPEN hPen; PAINTSTRUCT PtStr;//定义指向包含绘图信息的结构体变量
POINT points[6]={{100,212},{70,227},{70,250},{130,250},{130,227},{100,212}};//定义6个点的数组
switch(iMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&PtStr);
hPen=(HPEN)GetStockObject(NULL_PEN);
SelectObject(hDC,hPen); hBrush=(HBRUSH)GetStockObject(BLACK_BRUSH);
SelectObject(hDC,hBrush); LineTo(hDC,50,50);
DeleteObject(hPen); hPen=CreatePen(PS_SOLID,2,RGB(255,0,0));

SelectObject(hDC,hPen);
LineTo(hDC,150,50);
LineTo(hDC,100,137);
LineTo(hDC,50,50);//画一个三角形 Polyline(hDC,points,6);//画一个五角形
Arc(hDC,63,137,138,212,100,137,100,137);//画一个圆
Pie(hDC,213,137,288,212,240,137,260,137);//画一个圆饼
Rectangle(hDC,213,212,287,250);//画一个长方形
RoundRect(hDC,213,100,287,137,20,20);//画一个圆角长方形
DeleteObject(hPen);
DeleteObject(hBrush);

EndPaint(hWnd,&PtStr);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
HWND hWnd;
hWnd=CreateWindow("WinFill","填充示例程序",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
if(!hWnd)
return false;
hWndMain=hWnd;
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
BOOL InitWindowsClass(HINSTANCE hInstance)
{
WNDCLASS WndClass;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,"END");
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="WinFill";
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW|CS_VREDRAW;
return RegisterClass(&WndClass);
}
本程序是用C++源文件来建的,编译能通过,执行不了...不知为何!
高手请指点!

解决方案 »

  1.   

    编译错误报告如下:
    --------------------Configuration: 填充示例程序 - Win32 Debug--------------------
    Linking...
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/填充示例程序.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.填充示例程序.exe - 2 error(s), 0 warning(s)
      

  2.   

    连接错误!你看看是不是少了什么lib文件了
      

  3.   

    将项目类型改为windows,按Alt+F7,打开linker选项页,在最下面的方框中找到
    /subsystem:console,将其改为/subsystem:windows
      

  4.   

    打开project->Settings 在link-> object/library modules:加上:LIBCD.lib 就ok了
      

  5.   

    kpld8888(kpld)兄:
    我的问题解决了!!!
    可我不知道为什么?
    能跟我解释下吗?
      

  6.   

    chinasun2003(Brave)兄:
      加不加都无所谓哦!你说的LIBCD.lib啊!
     kpld8888(kpld) 兄说的就行了!
      

  7.   

    application 的程序建在console下了呗
      

  8.   

    唉呀,我加错分了!
    kpld8888(kpld)兄,我要加给你的,点错了!实在不好意思!
      

  9.   

    程序入口点问题。dos或者console程序的入口点是main,而windows程序的入口点是WinMain,若想进一步了解,请看《Windows核心编程》,里面有详细介绍。
    至于分数,我是无所谓的。只要能帮你解决问题,我也很高兴
      

  10.   

    我最近正在看<<Windows API编程详解>>这本书,你说的《Windows核心编程》我们图书馆也有!
    我会去借来看的!