#include<windows.h>
#include<stdio.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
static TCHAR szAppName[]=TEXT("HelloWorld");
static TCHAR szClassName[]=TEXT("HelloWorldClass");
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 = szClassName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This program requires Windows NT !"),
szAppName,MB_ICONERROR);
return 0;
} hwnd = CreateWindow(szClassName,
TEXT("My Input Program"),
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 message,WPARAM wParam,
LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
char temp[128];
switch(message)
{
case WM_CREATE:
return 0; //获取键盘输入
case WM_KEYDOWN:
switch(wParam)
{
//按Esc键推出
case VK_ESCAPE:
PostQuitMessage(0);
return 0;
}
//其余按键发声
MessageBeep(MB_OK);
return 0; //按下鼠标左键发声
case WM_LBUTTONDOWN:
MessageBeep(MB_OK);
return 0; //按下鼠标右键退出
case WM_RBUTTONDOWN:
PostQuitMessage(0);
return 0; //鼠标位置改变,显示坐标
case WM_MOUSEMOVE:
hdc = GetDC(hwnd);
sprintf(temp,"x: %d , y: %d",LOWORD(lParam),HIWORD(lParam));
TextOut(hdc,10,10,temp,strlen(temp));
ReleaseDC(hwnd,hdc);
return 0; case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
} return DefWindowProc(hwnd,message,wParam,lParam);
}
现在假串口收到了一个信息,那么应该是
case 什么 呢?谢谢!
#include<stdio.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
static TCHAR szAppName[]=TEXT("HelloWorld");
static TCHAR szClassName[]=TEXT("HelloWorldClass");
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 = szClassName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This program requires Windows NT !"),
szAppName,MB_ICONERROR);
return 0;
} hwnd = CreateWindow(szClassName,
TEXT("My Input Program"),
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 message,WPARAM wParam,
LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
char temp[128];
switch(message)
{
case WM_CREATE:
return 0; //获取键盘输入
case WM_KEYDOWN:
switch(wParam)
{
//按Esc键推出
case VK_ESCAPE:
PostQuitMessage(0);
return 0;
}
//其余按键发声
MessageBeep(MB_OK);
return 0; //按下鼠标左键发声
case WM_LBUTTONDOWN:
MessageBeep(MB_OK);
return 0; //按下鼠标右键退出
case WM_RBUTTONDOWN:
PostQuitMessage(0);
return 0; //鼠标位置改变,显示坐标
case WM_MOUSEMOVE:
hdc = GetDC(hwnd);
sprintf(temp,"x: %d , y: %d",LOWORD(lParam),HIWORD(lParam));
TextOut(hdc,10,10,temp,strlen(temp));
ReleaseDC(hwnd,hdc);
return 0; case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
} return DefWindowProc(hwnd,message,wParam,lParam);
}
现在假串口收到了一个信息,那么应该是
case 什么 呢?谢谢!
HANDLE hCom;
OVERLAPPED o;
BOOL fSuccess;
DWORD dwEvtMask;hCom = CreateFile( "COM1",
GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attributes
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL
);if (hCom == INVALID_HANDLE_VALUE)
{
// Handle the error.
}// Set the event mask. fSuccess = SetCommMask(hCom, EV_CTS | EV_DSR);if (!fSuccess)
{
// Handle the error.
}// Create an event object for use in WaitCommEvent. o.hEvent = CreateEvent(
NULL, // no security attributes
FALSE, // auto reset event
FALSE, // not signaled
NULL // no name
);assert(o.hEvent);if (WaitCommEvent(hCom, &dwEvtMask, &o))
{
if (dwEvtMask & EV_DSR)
{
// To do.
} if (dwEvtMask & EV_CTS)
{
// To do.
}
}
是不是写到
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
//*****************************是不是写到这里********************//
HANDLE hCom;
OVERLAPPED o;
BOOL fSuccess;
DWORD dwEvtMask; hCom = CreateFile( "COM1",
GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attributes
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL
); if (hCom == INVALID_HANDLE_VALUE)
{
// Handle the error.
} // Set the event mask. fSuccess = SetCommMask(hCom, EV_CTS | EV_DSR); if (!fSuccess)
{
// Handle the error.
} // Create an event object for use in WaitCommEvent. o.hEvent = CreateEvent(
NULL, // no security attributes
FALSE, // auto reset event
FALSE, // not signaled
NULL // no name
); assert(o.hEvent); if (WaitCommEvent(hCom, &dwEvtMask, &o))
{
if (dwEvtMask & EV_DSR)
{
// To do.
} if (dwEvtMask & EV_CTS)
{
// To do.
}
} //***********************是不是写到这里**************************** static TCHAR szAppName[]=TEXT("HelloWorld");
static TCHAR szClassName[]=TEXT("HelloWorldClass");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
}
谢谢!