完整程序如下:
#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++源文件来建的,编译能通过,执行不了...不知为何!
高手请指点!
#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++源文件来建的,编译能通过,执行不了...不知为何!
高手请指点!
解决方案 »
- MFC中是否有VB中的 Refresh 函数
- 谁能给我翻译一个64位上的托盘图标程序,代码是delphi的,同时有C++32位版的
- CWnd子类消息响应
- 如何在 MDI应用中打开自己定义的 FormView ?
- 共享mfc规则dll的内存泄漏
- 哪为前辈有VS.NET2003英文版的下载地址,晚辈另开5贴送500分!君子一言,驷马难追
- 一个简单CString的问题
- 控制台程序调用另一控制台程序怎样才能将调用的结果显示在原窗口中
- 程序不能随意修改
- 如何使自己做的ICON在没有图案的地方与窗口背景色一样?
- mfc ActiveX控件中, 怎么把一个Property page上一个控件和属性关联上呀?
- 如何在http代理中使用域,就和QQ,MSN里的一样,高分给出
--------------------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)
/subsystem:console,将其改为/subsystem:windows
我的问题解决了!!!
可我不知道为什么?
能跟我解释下吗?
加不加都无所谓哦!你说的LIBCD.lib啊!
kpld8888(kpld) 兄说的就行了!
kpld8888(kpld)兄,我要加给你的,点错了!实在不好意思!
至于分数,我是无所谓的。只要能帮你解决问题,我也很高兴
我会去借来看的!