| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 686 人关注过本帖
标题:[求助]关于主函数运行的问题
只看楼主 加入收藏
sijin_1984
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-25
收藏
 问题点数:0 回复次数:2 
[求助]关于主函数运行的问题

小弟写的主函数可以弹出窗口,但其他函数却没有运行。
不知道是哪的毛病啊各位给看看。
#include "main_s.h"
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG message;
if(!MyRegisterClass(hInstance))
{
return FALSE;
}
if(!InitInstance(hInstance,nCmdShow))
{
return FALSE;
}
while(GetMessage(&message,0,0,0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}
BOOL MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize =sizeof(WNDCLASSEX);
wcex.style =CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc =(WNDPROC)WndProc;
wcex.cbClsExtra =0;
wcex.cbWndExtra =0;
wcex.hInstance =hInstance;
wcex.hIcon =LoadIcon(hInstance,IDI_APPLICATION);
wcex.hCursor =LoadCursor (NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szAppName;
wcex.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
return RegisterClassEx (&wcex);
}
BOOL InitInstance(HINSTANCE hInstance,int iCmdShow)
{
HWND hwnd;
hwnd = CreateWindow (szAppName,
"绘制路线",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);
if(!hwnd)
{
return FALSE;
}
ShowWindow (hwnd, iCmdShow);
UpdateWindow (hwnd);
return TRUE;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static int iCount=1;

HDC hdc;
HPEN hPen;
hdc=GetDC(hwnd);
switch(iMsg)
{
case WM_LBUTTONDBLCLK:
f.output_f();
s.xuanze(p);
return 0;
case WM_LBUTTONDOWN:
p=&head;
hPen=CreatePenIndirect(&lpen);//创建画笔
SelectObject(hdc,hPen);//将新建的画笔选入当前设备描述表
Draw(hdc);//调用函数绘制平面图
DeleteObject(hPen);//删除画笔
return 0;
case WM_RBUTTONDOWN:
p=&head;
hPen=CreatePenIndirect(&lpen);
SelectObject(hdc,hPen);
Drawz(hdc);//调用函数绘制纵切面
DeleteObject(hPen);//删除画笔
return 0;
case WM_DESTROY://处理结束应用程序的消息
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam);
}
BOOL Draw(HDC hdc)
{
int f=1;//画平面
while(p->Next()!=NULL)
{
p=p->Next();
switch(p->flag)
{
case -1:
DrawArc(hdc,f);
break;
default:
DrawLines(hdc,f);
break;
}
}
return TRUE;
}
BOOL Drawz(HDC hdc)
{
int f= -1;//画纵切线
while(p->Next()!=NULL)
{
p=p->Next();
switch(p->flag)
{
case 0:
DrawArc(hdc,f);
break;
default:
DrawLines(hdc,f);
break;
}
}
return TRUE;
}

BOOL DrawArc(HDC hdc, int flag)
{
double xl,yl,xr,yr,qx,qy,zx,zy;
xl=p->yuan_x - p->yuan_r;
xr=p->yuan_x + p->yuan_r;
qx=p->qidian_x;
zx=p->zhong_x;
if(flag==1)
{
yl=p->yuan_y - p->yuan_r;
yr=p->yuan_y + p->yuan_r;
qy=p->qidian_y;
zy=p->zhong_y;
}
else
{
yl=p->yuan_h - p->yuan_r;
yr=p->yuan_h + p->yuan_r;
qy=p->qidian_h;
zy=p->zhong_h;
}
Arc(hdc,xl,yl,xr,yr,qx,qy,zx,zy);
return TRUE;
}
BOOL DrawLines(HDC hdc, int flag)
{
if(flag==1)
{
MoveToEx(hdc, p->qidian_x, p->qidian_y ,NULL);//设定起始点坐标
LineTo(hdc,p->zhong_x, p->zhong_y);
}
else
{
MoveToEx(hdc, p->qidian_x, p->qidian_h, NULL);
LineTo(hdc, p->zhong_x, p->zhong_h);
}
return TRUE;
}

搜索更多相关主题的帖子: 主函数 message hInstance int FALSE 
2006-06-08 10:10
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 

没看出来!

[此贴子已经被作者于2006-6-8 11:35:04编辑过]


我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-06-08 11:25
sijin_1984
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-25
收藏
得分:0 

我想会不会是在消息传递上有问题啊?
可是自己还找不出来

2006-06-08 11:45
快速回复:[求助]关于主函数运行的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020883 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved