在编API函数时,怎么老是说WndProc这个函数undeclared identifier,请高手帮忙解答一下!!!谢谢!!!
解决方案 »
- 怪问题。。点注册用户就会出现怪提示
- ☆☆☆菜鸟请教:一个按钮美化派生类为何不生效?☆☆☆
- wmemset/_tcsset有什么差别?
- 逻辑坐标,设备坐标,物理坐标????晕???
- 郁闷阿,有没有检查程序网络连接的工具?
- ★★★★★急,两个问题关于DateTimePicker控件1如何显示NULL2如何显示年月日时分秒
- 救命啊!!关于xp视频问题!!!!
- MFC的打印预览的放大缩小是怎么计算的?
- 难。。。关于HOOK CreateProcess的问题,问题的代码在
- help me!!!哪位大虾解决这个问题,绝不吝啬!加100分,可以分批给,决不食言!!
- 关于生成。exe文件
- 高分求救,VC编译器的问题,很郁闷
#include <windows.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>LRESULT CALLBACK Wndproc(HWND,UINT,WPARAM,LPARAM); //窗口函数的声明int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int
nCmdShow)
{
HWND hwnd;
MSG Msg;
WNDCLASS wndclass;
char lpszClassName[]="WinFill";
char lpszTitle[]="绘制射线程序";
wndclass.style=0;
wndclass.lpfnWndProc=(WNDPROC)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=lpszClassName;
if (!RegisterClass(&wndclass))
{
MessageBeep(0);
return FALSE;
}
hwnd=CreateWindow
(
lpszClassName,
lpszTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while (GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
LRESULT CALLBACK Wndproc(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static POINT p1;
static POINT p2[20];
static int i;
switch(Msg)
{
case WM_RBUTTONDOWN:
p1.x=LOWORD(lParam);
p1.y=HIWORD(lParam);
InvalidateRect(hwnd,NULL,1);
break;
case WM_RBUTTONUP:
InvalidateRect(hwnd,NULL,1);
break;
case WM_MOUSEMOVE:
if((wParam & MK_LBUTTON) && i < 20)
{
for(i=0;i<20;i++)
{
p2[i].x=LOWORD(lParam);
p2[i].y=HIWORD(lParam);
hdc=GetDC(hwnd);
SetPixel (hdc, LOWORD (lParam), HIWORD (lParam), 0L);
ReleaseDC(hwnd,hdc);
}
}
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
for(i=0;i<20;i++)
{
MoveToEx(hdc,p1.x,p1.y,NULL);
LineTo(hdc,p2[i].x,p2[i].y);
}
EndPaint(hwnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,Msg,wParam,lParam);
}
return 0;
}
你再试一下!
Wndproc-->WndProc
LRESULT CALLBACK Wndproc(HWND,UINT,WPARAM,LPARAM); //窗口函数的声明//p小写
wndclass.lpfnWndProc=(WNDPROC)WndProc; //P大写
LRESULT CALLBACK Wndproc(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam) //p小写C语言是大小写敏感的,名称要统一大小写