5创建资源

#include<Windows.h>
#include<stdio.h>
#include"resource.h"

//创建右键菜单
void OnRButtonUp(HWND hWnd,LPARAM lParam)
{
HMENU hPop3=CreatePopupMenu();
POINT pt={0};
pt.x=LOWORD(lParam);
pt.y=HIWORD(lParam);
//把客户区(窗口)坐标转换成屏幕坐标
ClientToScreen(hWnd,&pt);
AppendMenu(hPop3,MF_STRING,108,"我的右键菜单");
//TrackPopupMenu(hPop3,TPM_VCENTERALIGN,LOWORD(lParam),HIWORD(lParam)
// ,0,hWnd,NULL);
该函数在指定位置显示快捷菜单,并跟踪菜单项的选择
TrackPopupMenu(hPop3,TPM_VCENTERALIGN,pt.x,pt.y
,0,hWnd,NULL);
}


LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
/*MessageBox(hWnd,TEXT("窗口已创建"),TEXT("窗口"),MB_OKCANCEL)*/
case WM_DESTROY:
PostQuitMessage(0);break; //进入系统消息队列
//右击鼠标消息
case WM_RBUTTONUP:
OnRButtonUp(hWnd,lParam);break;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
void MyRegisterWindowClass(HINSTANCE hInstance,LPCSTR lpClassName,WNDPROC wndproc)
{
WNDCLASS wc={0};
wc.lpszClassName=lpClassName;
wc.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;
wc.cbClsExtra=NULL;
wc.cbWndExtra=NULL;
wc.hbrBackground=(HBRUSH)COLOR_WINDOW;
//加载光标符号
wc.hCursor=LoadCursor(hInstance,MAKEINTRESOURCE(IDC_CURSOR1));
//加载图标句柄 //资源里的ID号
wc.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
//宏定义函数 转换资源菜单的指针
这个宏是把一个数字类型转换成指针类型的宏
wc.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
RegisterClass(&wc);
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
//注册主窗口
MyRegisterWindowClass(hInstance,TEXT("main"),WndProc);
//创建主窗口
HWND hWnd=CreateWindow(TEXT("main"),TEXT("TEXT"),WS_OVERLAPPEDWINDOW,200,200,1000,600,NULL,NULL,hInstance,NULL);
//显示窗口
ShowWindow(hWnd,SW_SHOW); //必须显示主窗口
UpdateWindow(hWnd);
//消息循环
MSG msg={0};
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}

posted @ 2017-09-03 21:39  gd_沐辰  阅读(132)  评论(0)    收藏  举报