VC MFC 创建桌面快捷方式

合集下载

基于MFC的桌面应用程序开发与优化

基于MFC的桌面应用程序开发与优化

基于MFC的桌面应用程序开发与优化一、引言随着计算机技术的不断发展,桌面应用程序在日常生活和工作中扮演着越来越重要的角色。

MFC(Microsoft Foundation Class)作为Windows平台下的经典桌面应用程序开发框架,具有丰富的功能和强大的扩展性,被广泛应用于各种领域。

本文将重点探讨基于MFC的桌面应用程序开发与优化,旨在帮助开发人员更好地利用MFC框架构建高效、稳定的桌面应用程序。

二、MFC框架概述MFC是微软公司提供的一套C++类库,旨在简化Windows应用程序的开发过程。

通过MFC,开发人员可以快速构建具有丰富用户界面和功能的桌面应用程序。

MFC提供了诸多类和函数,涵盖了窗口管理、消息处理、控件设计等方方面面,为开发人员提供了强大的工具箱。

三、MFC应用程序的创建在开始开发基于MFC的桌面应用程序之前,首先需要创建一个MFC应用程序项目。

在Visual Studio中,选择“新建项目”->“Visual C++”->“MFC应用程序”,按照向导指引完成项目创建过程。

在创建项目时,可以选择不同类型的应用程序模板,如单文档应用程序、多文档应用程序等,根据实际需求选择合适的模板。

四、MFC应用程序开发实践1. 界面设计MFC提供了丰富的控件库,开发人员可以通过拖拽控件到对话框上的方式快速设计用户界面。

在设计界面时,需要考虑用户体验和美观性,合理布局各个控件,并确保界面风格统一。

2. 事件处理事件处理是MFC应用程序开发中至关重要的一环。

通过响应用户操作或系统消息,触发相应事件并执行相应操作。

在MFC中,可以通过消息映射表和消息处理函数来实现事件处理,确保应用程序能够正确响应用户操作。

3. 数据处理对于需要处理数据的桌面应用程序,数据处理是不可或缺的部分。

MFC提供了数据库支持和文件操作等功能,可以方便地进行数据读写操作。

开发人员需要合理设计数据结构和数据流程,确保数据的准确性和完整性。

VC++MFC基础教程

VC++MFC基础教程
DCB dcb; GetCommState(hCom,&dcb); dcb.BaudRate=9600; //波特率为 dcb.ByteSize=8; //每个字节有位
dcb.Parity=NOPARITY; //无奇偶校验位 dcb.StopBits=TWOSTOPBITS; //两个停止位 SetCommState(hCom,&dcb);
m_cComm.put_OutBufferSize(512); //设置输出缓冲区 m_cComm.put_Settings(TEXT("9600,n,8,1"));//波特率,无校验,个数
据位,个停止位
if(!m_cComm.get_PortOpen())
{
m_cComm.put_PortOpen(TRUE); //打开串口
B)修改控件属性
修改上面的示例编辑框属性: ID——IDC_EDIT_RECV;
Multiline——True; Want Return——True; Vertical Scroll——True; Auto VScroll——True;
修改下面的示例编辑框属性: ID——IDC_EDIT_SEND; Multiline——True; Vertical Scroll——True;
1.3、API 串口编程
按照步骤一新建 Serial 工程,这里不赘述了。
A)添加 API 串口初始化代码
1、在 SerialDlg.cpp 文件中添加全局变量:
HANDLE hCom; //全局变量,串口句柄 // CSerialDlg 对话框
2、在 SerialDlg.cpp 文件中的 OnInitDialog()函数添加如下代码:
AfxMessageBox("写串口失败!"); }

C#给Winform的button等控件添加快捷键三种方法

C#给Winform的button等控件添加快捷键三种方法

C#给Winform的button等控件添加快捷键三种方法第一种:Alt + *(按钮快捷键)在大家给button、label、menuStrip等控件设置Text属性时在名字后边加&键名就可以了,比如button1.text= "确定(&O)"。

就会有快捷键了,这时候按Alt+O就可以执行按钮单击事件。

第二种:Ctrl+*及其他组合键在WinForm中设置要使用组合键的窗体的KeyPreview(向窗体注册键盘事件)属性为True;然后使用窗体的KeyDown事件(在首次按下某个键时发生).实例代码:private void ***_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.F && e.Control){button1.PerformClick(); //执行单击button1的动作}}注:1、***代表窗体名称,大家可以看一下”Keys”的枚举参数,以实现自己需要2、还有一个问题,当使用Ctrl + *快捷键时,对于焦点在可写的控件(如TextBox)上时,可能会将* 键值同时输入,则需要加另一句话将Handled设置为true,以取消 KeyPress 事件。

即:private void ***_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.F && e.Control){e.Handled = true; //将Handled设置为true,指示已经处理过KeyPress事件button1.PerformClick();}}第三种:还是以button为例。

给form添加一个contextMenuStrip1,将其邦定到button上,假设为button1。

给contextMenuStrip1添加一个item,然后为它设置快捷键(就是你想加在button上的快捷键),并且将它的Visible属性设为false。

MFC控件使用详细教程

MFC控件使用详细教程

MFC控件使用详细教程MFC(Microsoft Foundation Class)是微软推出的一套用于开发Windows应用程序的类库。

它提供了许多方便易用的控件,可以快速创建用户界面。

本教程将详细介绍如何使用MFC控件来创建Windows应用程序。

第一步:创建一个MFC应用程序项目要使用MFC控件,首先需要创建一个MFC应用程序项目。

在Visual Studio中,选择"文件"->"新建"->"项目",然后选择"MFC应用程序"模板。

在项目设置中,可以选择使用对话框或视图来作为应用程序的主界面。

第二步:设置控件属性第三步:添加控件消息处理程序控件不仅仅可以显示在界面上,还可以响应用户的操作。

例如,当用户点击按钮时,可以执行一些特定的操作。

要实现这个功能,需要添加控件消息处理程序。

可以通过右键单击控件,选择"添加事件处理程序"来添加控件消息处理程序。

在生成事件处理程序的对话框中,可以选择控件的事件(如点击事件、鼠标移动事件等)和消息的处理函数。

在消息处理函数中,可以编写代码来实现特定的功能。

第四步:编写控件的功能代码在控件的消息处理函数中,可以使用MFC类库提供的函数来实现控件的功能。

例如,如果用户点击了按钮控件,可以使用CButton类的GetWindowText函数来获取按钮的文本,并使用CMessageBox类的MessageBox函数来显示一个消息框。

可以使用类似的方式来处理其他控件的事件。

例如,当用户选择了一个列表框中的项时,可以使用CListBox类的GetCurSel函数来获取选择的项的索引,并根据索引来执行特定的操作。

第五步:编译和运行应用程序完成了控件的添加和功能编写后,可以使用Visual Studio的编译和运行功能来编译和运行应用程序。

在编译过程中,会生成可执行文件和相关的依赖文件。

vs2015之mfc简单实践项目

vs2015之mfc简单实践项目

vs2015之mfc简单实践项目在开始之前,确保您已经安装了Visual Studio 2015以及相应的MFC组件。

接下来,我们将按照以下步骤进行MFC实践项目的开发。

第一步:创建MFC项目打开Visual Studio 2015,选择“文件”->“新建”->“项目”,在弹出的对话框中选择“MFC应用程序”,然后点击“下一步”。

在下一个对话框中,输入项目名称和存储位置,然后点击“完成”按钮。

第二步:设计用户界面在MFC项目中,用户界面设计使用的是资源编辑器。

在解决方案资源视图中,双击“资源文件”文件夹,然后双击“*.rc”文件。

在资源编辑器中,您可以添加和编辑对话框、菜单、工具栏等控件,以创建您的用户界面。

第三步:添加事件处理在设计好用户界面后,我们需要为其中的控件添加事件处理。

在资源编辑器中,双击一个控件,比如按钮,然后在属性窗口中找到“消息映射器”属性。

点击旁边的“添加事件处理程序”按钮,选择要处理的事件,然后点击“确定”。

在弹出的对话框中,选择一个现有的函数或新建一个函数,该函数将在相应的事件发生时被调用。

第四步:编写C++代码在添加完事件处理后,点击“打开源文件”,将会打开对应的C++源文件。

在这里,您可以编写处理事件的代码。

您可以使用MFC 提供的各种类和函数来实现您的功能。

第五步:编译和运行完成代码编写后,点击“生成”->“生成解决方案”来编译项目。

如果编译成功,您可以点击“调试”->“开始调试”来运行您的MFC应用程序。

通过以上步骤,您可以在VS2015中使用MFC创建并开发一个简单的实践项目。

当然,这只是MFC的基础用法,MFC还有很多其他的功能和特性可以供开发者使用。

希望本文能够对您在MFC项目开发中有所帮助。

总结:本文介绍了如何在VS2015中使用MFC进行简单的实践项目开发。

通过创建MFC项目、设计用户界面、添加事件处理、编写C++代码以及编译和运行,您可以快速上手MFC开发。

如何使用visualstudio2019创建简单的MFC窗口(使用C++)

如何使用visualstudio2019创建简单的MFC窗口(使用C++)

如何使⽤visualstudio2019创建简单的MFC窗⼝(使⽤C++)本⽂介绍了如何使⽤visual studio2019创建简单的MFC窗⼝(使⽤C++)```cpp使⽤visual studio 2019 创建过程请参考Bili的上⼀篇⽂章⬇⬇→!使⽤visual studio 2019 创建简单的MFC窗⼝「使⽤底层的C语⾔」#include<windows.h> //底层实现窗⼝的头⽂件//6.处理窗⼝过程//CALLBACK 代表_stdcall 参数的传递顺序:从右到左依次⼊栈,并且函数返回前清空堆栈LRESULT CALLBACK WindowProc(HWND hand, //消息所属窗⼝句柄UINT uMsg, //具体消息名称 WM_XXXX消息名WPARAM wParam, //键盘附加消息LPARAM lParam) { //⿏标附加消息switch (uMsg){case WM_CLOSE://所有以XXXXWindow为结尾的⽅法,都不会进⼊到消息队列中,⽽是直接执⾏DestroyWindow(hand);//发送另⼀个消息WM_DESTROYbreak;case WM_DESTROY:PostQuitMessage(0);break;case WM_LBUTTONDOWN://⿏标左键按下{int xPos = LOWORD(lParam);int yPos = HIWORD(lParam);char buf[1024];wsprintf(buf, TEXT("x = %d,y = %d"),xPos,yPos);MessageBox(hand, buf, TEXT("按下⿏标左键"), MB_OK);break;}case WM_KEYDOWN: //键盘{MessageBox(hand, TEXT("键盘"), TEXT("按下键盘"), MB_OK);break;}case WM_PAINT: //画图{PAINTSTRUCT ps; //画图结构体HDC hdc = BeginPaint(hand, &ps);TextOut(hdc, 100, 100,TEXT("hello"), strlen("hello"));EndPaint(hand, &ps);break;}default:break;}//返回值⽤默认处理⽅式return DefWindowProc(hand, uMsg, wParam, lParam);}/*程序⼊⼝函数_In_ HINSTANCE hInstance,//应⽤程序实例句柄_In_opt_ HINSTANCE hPrevInstance,//上⼀个应⽤程序句柄,在WIN32环境下⼀般为NULL,不起作⽤了_In_ LPSTR lpCmdLine,//char * argv[]_In_ int nShowCmd//显⽰命令最⼤化、最⼩化、正常WINAPI 代表_stdcall 参数的传递顺序:从右到左依次⼊栈,并且函数返回前清空堆栈*/int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) {/*1.设计窗⼝2.注册窗⼝3.创建窗⼝4.显⽰和更新5.通过循环取消息6.处理消息(窗⼝过程)*///1.设计窗⼝WNDCLASS wc;wc.cbClsExtra = 0; //类的额外的内存wc.cbWndExtra = 0; //窗⼝额外的内存wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //设置背景wc.hCursor = LoadCursor(NULL, IDC_HAND); //设置光标,如果第⼀个参数为null,代表使⽤系统提供的光标wc.hIcon = LoadIcon(NULL, IDI_ERROR); //图标,如果第⼀个参数为null,代表使⽤系统提供的图标wc.hInstance = hInstance; //应⽤程序的实例句柄,传⼊winmain的形参即可wc.lpfnWndProc = WindowProc; //回调函数窗⼝过程wc.lpszClassName = TEXT("WIN"); //指定窗⼝名称wc.lpszMenuName = NULL; //菜单名称wc.style = 0; //显⽰风格,0代表默认//2.注册窗⼝RegisterClass(&wc);//3.创建窗⼝/*lpszClassName,//类名lpWindowName, //标题名dwStyle, //风格 WC_OVERLAPPEDWINDOWx, //坐标 CW_USERDEFAULTy, //坐标nWidth, //宽nHeight, //⾼hWndParent, //⽗窗⼝ nullhMenu, //菜单 nullhInstance, //实例句柄lpParam //附加值⿏标附加值*/HWND hwnd = CreateWindow(wc.lpszClassName, TEXT("WINDOWS"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); //4.显⽰和更新ShowWindow(hwnd, SW_SHOWNORMAL);UpdateWindow(hwnd);/*HWND hwnd; //主窗⼝句柄UINT message; //具体消息名称WPARAM wParam; //附加消息键盘消息LPARAM lParam; //附加消息⿏标消息DWORD time; //消息产⽣时间POINT pt;*/ //附加消息⿏标消息 x,y//5.通过循环取消息MSG msg;/*_Out_ LPMSG lpMsg, //消息_In_opt_ HWND hWnd, //捕获窗⼝填null表⽰捕获所有窗⼝_In_ UINT wMsgFilterMin, //最⼤和最⼩的过滤消息⼀般填0_In_ UINT wMsgFilterMax);*/while (GetMessage(&msg, NULL, 0, 0)){/*if (GetMessage(&msg, NULL, 0, 0) == FALSE) {break;}*///翻译消息TranslateMessage(&msg);//不是false//分发消息DispatchMessage(&msg);}return 0;}划重点:项⽬->属性->常规->⾼级->将MFC的使⽤设置为在“共享dll中使⽤mfc”头⽂件mfc.h#include <afxwin.h>//mfc头⽂件class MyApp:public CWinApp{public:virtual BOOL InitInstance();};class MyFrame :public CFrameWnd {//窗⼝框架类public:MyFrame();//声明宏提⽰消息映射机制DECLARE_MESSAGE_MAP();afx_msg void OnLButtonDown(UINT,CPoint);afx_msg void OnChar(UINT,UINT,UINT);afx_msg void OnPaint();};源⽂件mfc.cpp#include “mfc.h”MyApp app;BOOL MyApp::InitInstance() {//创建窗⼝MyFrame* frame = new MyFrame;//显⽰和更新frame->ShowWindow(SW_SHOWNORMAL);frame->UpdateWindow();m_pMainWnd = frame;//保存指向应⽤程序的主窗⼝的指针return TRUE;//返回正常初始化}//分界宏BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd)ON_WM_LBUTTONDOWN()//⿏标左键按下ON_WM_CHAR()ON_WM_PAINT()END_MESSAGE_MAP()MyFrame::MyFrame(){Create(NULL,TEXT(“windows”));}void MyFrame::OnLButtonDown(UINT, CPoint point){//TCHAR buf[1024];//wsprintf(buf, TEXT(“x = %d,y = %d”), point.x, point.y);//MessageBox(buf);CString str;str.Format(TEXT(“x = %d,y = %d”),point.x,point.y);MessageBox(str);}void MyFrame::OnChar(UINT key, UINT, UINT){CString str;str.Format(TEXT(“按下了%c键”),key);MessageBox(str);}void MyFrame::OnPaint(){CPaintDC dc(this);dc.TextOutW(100,100,TEXT(“为了部落”));dc.Ellipse(10,10,100,100);}到此这篇关于如何使⽤visual studio2019创建简单的MFC窗⼝(使⽤C++)的⽂章就介绍到这了,更多相关vs2019创建MFC窗⼝内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

如何在Windows系统中创建桌面快捷方式

如何在Windows系统中创建桌面快捷方式

如何在Windows系统中创建桌面快捷方式Windows作为最常用的操作系统之一,为用户提供了便捷的操作方式和丰富的功能。

创建桌面快捷方式是一项常见的需求,方便快速访问常用程序或文件。

本文将介绍在Windows系统中如何创建桌面快捷方式的方法。

一、使用拖拽方式创建桌面快捷方式在Windows系统中,最简单的创建桌面快捷方式的方法就是使用拖拽。

下面是具体步骤:1. 找到您想要创建快捷方式的程序或文件,在资源管理器中打开所在的目录。

2. 将鼠标指针移到程序或文件上,按住左键不放。

3. 同时按住鼠标左键,将程序或文件拖动到桌面上的空白区域。

4. 在桌面上释放鼠标左键。

这样,您就成功地在桌面上创建了一个快捷方式,可以通过点击它来打开相应的程序或文件。

二、使用右键菜单创建桌面快捷方式除了拖拽方式创建快捷方式,Windows系统还提供了使用右键菜单的方法。

下面是具体步骤:1. 找到您想要创建快捷方式的程序或文件,在资源管理器中打开所在的目录。

2. 在程序或文件上点击鼠标右键,打开右键菜单。

3. 在右键菜单中,将鼠标指针移到“发送到”选项上。

4. 在“发送到”选项的子菜单中,选择“桌面 (快捷方式)”选项。

这样,系统会自动在桌面上创建一个快捷方式,您可以随时点击它来打开相应的程序或文件。

三、使用快捷键创建桌面快捷方式除了以上两种方法,Windows系统还提供了使用快捷键的方式来创建桌面快捷方式。

下面是具体步骤:1. 找到您想要创建快捷方式的程序或文件,在资源管理器中打开所在的目录。

2. 在程序或文件上点击鼠标右键,打开右键菜单。

3. 在右键菜单中,将鼠标指针移到“发送到”选项上。

4. 在“发送到”选项的子菜单中,按住Alt键,同时点击键盘上的字母"D"键。

这样,系统会自动在桌面上创建一个快捷方式,并选中它。

您可以随时点击Enter键来打开相应的程序或文件。

总结:通过拖拽、右键菜单或快捷键的方式,您可以在Windows系统中轻松地创建桌面快捷方式。

MFC定制(右键)菜单和快捷键

MFC定制(右键)菜单和快捷键

1、打开菜单模板编辑器
2、插入空白菜单项
按Insert键,如果已有则编辑之3、编辑菜单(标题)
注:&D表示助记键为D
4、编辑下拉菜单
注:...表示将弹出对话框
5、插入分隔符
将空白菜单项属性的分隔符勾上
6、定制级联菜单
将下拉菜单项的弹出属性选上
7、添加菜单项说明,内容将在状态栏显示
定制快捷键
1、添加快捷键提示文本
即在菜单项标题属性中添加类似“\tCtrl+K”的字符串,其中“Ctrl+K”就是快捷键。

2、添加快捷键资源
打开快捷键编辑器;
双击最后一行,编辑快捷键属性;
注:ID标签与菜单项ID对应。

定制右键(浮动)菜单
1、定制菜单模板
注:和普通菜单定制方法一样,“浮动”是要通过代码来实现的。

2、代码实现:为视图类添加右键事件响应函数OnRButton Up
为视图类添加成员变量
3、修改右键事件响应函数OnRButtonUp.
4、将右键菜单资源添加到主框架类,为该类添加事件响应函数。

注:视图类接管处理按键和鼠标消息,当右键事件触发视图类的响应函数时将显示右键菜单;
而主框架类接管菜单项命令消息,当点击某菜单项就触发主框架类,进而调用响应函数。

VC创建快捷方式

VC创建快捷方式
ppf->Release();
}
psl->Release();
}
return hres;
}
代码2:
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
void main()
{
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
IShellLink *pisl;
hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkA, (void**)&pisl);
10、SetArguments
11、SetDescription
12、SetHotkey
13、SetIconLocation
14、SetIDList
15、SetPath
16、SetRelativePat
17、SetShowCmd
18、SetWorkingDirectory
pisl->SetPath("D:\\Visual Studio Projects\\Demo\\hello\\Debug\\hello.exe");
hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
if (SUCCEEDED(hr))
VC操作Windows快捷方式
总结主要有二个操作:新建和解析主要用到的是COM组件。IShellLink和IPersistFile需要添加的头函数shobjidl.hIPersistFile主要用到两个成员函数:

如何在Windows中创建桌面快捷方式

如何在Windows中创建桌面快捷方式

如何在Windows中创建桌面快捷方式在Windows操作系统中,桌面快捷方式可以方便用户快速访问常用的应用程序、文件或文件夹。

本文将介绍在Windows中创建桌面快捷方式的几种常见方法,以及一些实用技巧。

一、通过拖拽方式创建桌面快捷方式在Windows中,最简单的创建桌面快捷方式的方法就是通过拖拽。

具体操作步骤如下:1. 打开资源管理器(可以通过快捷键Win + E打开)。

2. 在资源管理器中找到需要创建快捷方式的应用程序、文件或文件夹。

3. 按住鼠标左键不放,在资源管理器中拖拽到桌面。

4. 在弹出的菜单中选择“创建桌面快捷方式”。

5. 桌面上将会出现一个新的快捷方式图标,点击即可快速访问相关资源。

二、通过右键菜单创建桌面快捷方式除了拖拽方式,Windows还提供了通过右键菜单创建桌面快捷方式的方法。

具体操作步骤如下:1. 打开资源管理器,并找到需要创建快捷方式的应用程序、文件或文件夹。

2. 右键点击选中的资源,弹出一个菜单。

3. 在菜单中选择“发送到”,再选择“桌面(创建快捷方式)”。

4. 桌面上将会出现一个新的快捷方式图标,方便快速访问相关资源。

三、通过快捷键创建桌面快捷方式除了上述两种方法,Windows还提供了一种通过快捷键创建桌面快捷方式的方法。

具体操作步骤如下:1. 找到需要创建快捷方式的应用程序、文件或文件夹的可执行文件。

2. 右键点击选中的可执行文件,弹出一个菜单。

3. 在菜单中选择“属性”,弹出属性对话框。

4. 在属性对话框的“快捷方式”选项卡中,定位到“快捷键”输入框。

5. 在快捷键输入框中按下想要的快捷方式组合键(例如Ctrl + Alt + W)。

6. 点击“确定”按钮保存设置。

7. 然后你可以在任意位置按下快捷键组合,即可快速打开相关资源。

四、设置桌面快捷方式图标除了创建桌面快捷方式,你还可以设置快捷方式的图标,使其更加个性化。

具体操作步骤如下:1. 右键点击桌面上的快捷方式图标,弹出一个菜单。

VC控制软件中快速建立右键弹出菜单

VC控制软件中快速建立右键弹出菜单
VC 控制软件中快速建立右键弹出菜单 在控制软件中,常需要建立快捷菜单,本文就介绍建立快捷菜单的快速方法。新建一个项目, 用 MFC AppWizard[exe]新见一个基本对话框,然后建立右键菜单,步骤如下。 1、建立右键菜单
新建一个菜单资源,把菜单的ID号为IDC_POPMENU
2、设计菜单 如建立两个菜单项打开和关闭,如下图
CDialog::OnRButtonDown(nFlags, point);
}
4、点击菜单”打开”和”关闭”
填写如下代码
void CTtDlg::Or command handler code here
MessageBox("Open");
}
void CTtDlg::OnCloss() {
pzSubMenu = cmenu.GetSubMenu(0); CPoint oPoint; //定义一个用于确定光标位置的
位置
GetCursorPos( &oPoint);
//获取当前光标的位置,以便使得菜单可以跟随光

pzSubMenu->TrackPopupMenu (TPM_LEFTALIGN, oPoint.x, oPoint.y, this);
右点”打开”,在属性设置如下图
右点”关闭”,在属性设置如下图
3、增加类函数 在新建菜单上点右键,建立类向导,如下选择 然后选择对话框的类名,如下图,在 Message 选择 WM_RBUTTONDOWN
双击 ON_WM_RBUTTONDOWN,填写如下代码
void CTtDlg::OnRButtonDown(UINT nFlags, CPoint point)
// TODO: Add your command handler code here MessageBox("Close"); } 编译运行,结果如下

创建桌面快捷方式

创建桌面快捷方式

创建桌面快捷方式在计算机操作中,桌面快捷方式是一种方便的工具,它可以帮助用户快速访问他们最常用的应用程序、文件夹或者网站。

本文将向您介绍如何在Windows和Mac操作系统上创建桌面快捷方式。

在Windows操作系统上,创建桌面快捷方式非常简单。

请按照以下步骤操作:1. 找到您要创建快捷方式的文件、文件夹或者应用程序。

可以通过“开始菜单”或者“文件资源管理器”来找到它们。

2. 右键点击目标文件、文件夹或者应用程序,然后从弹出菜单中选择“发送到”,再选择“桌面(快捷方式)”。

这样,Windows会自动在桌面上创建一个新的快捷方式图标。

3. 如果您想要自定义快捷方式的图标,可以右键点击新创建的快捷方式,选择“属性”打开属性窗口。

在属性窗口中,点击“更改图标”按钮,然后选择您喜欢的图标。

您还可以点击“浏览”按钮来选择自定义图标。

在Mac操作系统上,创建桌面快捷方式也十分简单。

请按照以下步骤操作:1. 找到您要创建快捷方式的应用程序或者文件夹。

可以通过“启动台”或者“Finder”来找到它们。

2. 按住“Control”键并同时点击目标应用程序或者文件夹,然后从弹出的菜单中选择“创建别名”。

这样,Mac会创建一个新的别名文件。

3. 将新创建的别名文件拖到桌面上即可。

此时,您已成功创建了一个桌面快捷方式。

无论是Windows还是Mac操作系统,创建桌面快捷方式都能帮助您更快速地访问您常用的应用程序、文件夹或者网站。

在繁忙的工作中,这将提高您的工作效率。

总结起来,创建桌面快捷方式非常简单,无论是Windows还是Mac 操作系统,只需要几个简单的步骤即可完成。

通过创建自己需要的快捷方式,您可以更加高效地使用计算机,并节省时间。

无论您是在工作还是娱乐中使用计算机,快捷方式都会成为您不可或缺的工具之一。

希望本文对您有所帮助,祝您在使用计算机时事半功倍!。

VC MFC简明教程

VC  MFC简明教程

本文由jhsloi贡献 pdf1。

Visual C++ MFC 简明教程 原著:Marshall Brain 编译:张圣华 第一部分:MFC 导论 Visual C++ 不仅仅是一个编译器。

它是一个全面的应用程序开发环境,使用它你充分 利用具有面向对象特性的 C++ 来开发出专业级的 Windows 应用程序。

为了能充分利用这 些特性,你必须理解 C++ 程序设计语言。

掌握了 C++,你就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。

该层次 结构包容了 Windows API 中的用户界面部分,并使你能够很 容易地以面向对象的方式建立 Windows 应用程序。

这种层次结构适用于所有版本的 Windows 并彼此兼容。

你用 MFC 所建立的代码是完全可移植的。

 该教程将向你介绍 MFC 的基本概念和术语以及事件驱动程序设计方法。

在本节中,你 将会输入、编译和运行一个简单的 MFC 程序。

下一节中将向你详细解释这些代码。

第三部 分讨论了 MFC 控制和如何定制它们。

第四部分将介绍消息映射,你将会处理 MFC 的事件。

什么是 MFC? 如果你要建立一个 Windows 应用程序,应该如何下手? 好的开端是从设计用户界面开始。

 首先, 你要决定什么样的用户能使用该程序并根据需 要来设置相应的用户界面对象。

Windows 用户界面有一些标准的控制,如按钮、菜单、滚 动条和列表等,这对那些 Windows 用户已经是很熟悉了。

 要记住的是,作为程序员必须 选择一组控制并决定如何把它们安排到屏幕上。

 传统上, 你需要在纸上做一下用户界面的草 图,直到对各元素感到满意为止。

这对于一些比较小的项目,以及一些大项目的早期原型阶 段是可以的。

 下一步, 是要实现代码。

 为任何 Windows 平台建立应用程序时, 程序员都有两种选择: C 或 C++。

 使用 C,程序员是在 Windows 应用程序界面 ( API ) 的水平上编写代码。

mfc快捷键设置 vc++6.0热键设置

mfc快捷键设置  vc++6.0热键设置

1.为类添加消息ID在需要要添加热键的类的头文件(.h)开始处添加如下代码:#define WM_MYHOTKEY WM_USER+1000//在这里我们需要知道为了防止用户定义的消息ID与系统的消息ID冲突,MS(Microsoft)定义了一个宏WM_USER,小于WM_USER的ID被系统使用,大于WM_USER的ID被用户使用。

2.为类手动添加WM_HOTKEY消息映射在需要要添加热键的类的头文件(.h)的DECLARE_MESSAGE_MAP()前添加:afx_msg LONG OnHotKey(WPARAM wParam,LPARAM lParam);在需要要添加热键的类的源文件(.cpp)的BEGIN_MESSAGE_MAP(CHotKeyDlg,CDialog)宏和END_MESSAGE_MAP()宏之间添加:ON_MESSAGE(WM_HOTKEY,OnHotKey)3.在类的初始化函数中调用RegisterHotKey()函数,注册快捷键打开类向导,为我们的类添加一个初始化函数,并在函数中添加注册快捷键的代码BOOL hotkey::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization hereif(RegisterHotKey(GetSafeHwnd(),WM_MYHOTKEY,NULL,VK_F2))MessageBox("快捷键注册成功");elseMessageBox("快捷键注册失败");return TRUE; // return TRUE unless you set the focus to a control// EXCEPTION: OCX Property Pages should return FALSE }这里的RegisterHotKey(GetSafeHwnd(),WM_MYHOTKEY,NULL,VK_F2)函数中GetSafeHwnd()函数是用来返回窗口的句柄,WM_MYHOTKEY为快捷键的ID,NULL表示快捷键无辅助按键,VK_F2是快捷键的键值。

修改MFC应用程序的图标、光标、托盘图标、窗口风格的方法

修改MFC应用程序的图标、光标、托盘图标、窗口风格的方法
BOOL DestroyIcon( HICON hIcon );
其中,hIcon用来指定要删除的图标句柄。 3. 图标的显示 图标的显示一般有两种方法:一是通过静态图片控件来显示,或在其他(如按钮) 控件设置显示;二是通过函数CDC::DrawIcon用来将一个图标绘制在指定设备的位置处 (这一方法以后再讨论)。 4. 图标示例 下面来看一个示例,如图5.5所示,单击[开始]按钮,3个图标就会每隔100ms随机显示, 且此时[开始]按钮变成[停止]。单击[停止]按钮,图标停止更新,按钮的名称变成“开 始”,如果3个图标的图案都是一样的,则弹出消息对话框,显示“恭喜你!”,否则 显示“失败!”。
5.2图标
(4)在CMainFrame::OnCreate函数的最后添加计时器设置代码:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; ... SetTimer(1, 500, NULL); return 0; }
其中,lpszResourceName和nIDResource分别表示图标资源的字符串名和标识。函 数返回的是一个图标句柄。 如果不想使用新的图标资源,也可使用系统中预定义好的标准图标,这时需调用 CWinApp::LoadStandardIcon 函数,其原型如下:
HICON LoadStandardIcon( LPCTSTR lpszIconName ) const;
图5.6 添加并设计的图标
5.2图标
(4)在ResourceView页面中,双击“Dialog”下的IDD_EX_RANDICON_DIALOG, 打开对话框资源模板。将对话框的标题设为“图标使用”。删除“TODO: 在这里设置对 话控制。”静态文本控件和[取消]按钮,将[确定]按钮标题改为“退出”。 (5)打开对话框网格,参照图5.5所示,调整对话框大小,分别依次添加3个静态图 片控件,ID号分别设置为IDC_STATIC_1、IDC_STATIC_2和IDC_STATIC_3,类型选择 为“图标”,图像依次选择为IDI_ICON1、IDI_ICON2和IDI_ICON3,在样式属性中,分 别选中“图像居中”。 (6)添加一个按钮控件,ID号为IDC_BUTTON_START,标题为“开始”。 (7)按Ctrl+W键,打开MFC ClassWizard的Member Variables页面,依次为 IDC_STATIC_1、IDC_STATIC_2和IDC_STATIC_3设置CStatic类的Control变量 m_wndIcon1、m_wndIcon2和m_wndIcon3。 (8)切换到Messsage Maps页面,为按钮IDC_BUTTON_START添加 BN_CLICKED消息映射,保留默认的映射函数名,添加下列代码: (9)再次打开MFC ClassWizard的Messsage Maps页面,为CEx_RandIconDlg类 添加WM_TIMER消息映射,并在映射函数中添加下列代码: (10)编译运行并测试。

创建和删除快捷方式

创建和删除快捷方式

创建和删除快捷⽅式创建和删除快捷⽅式--下⼀节 OSfCreateShellGroup,OSfCreateShellLink,OSfRemoveShellLink三个API函数存在于VB的⼀个动态连接库Vb5stkit.dll中,使⽤它们可以⽅便的创建桌⾯上或是开始菜单中的快捷⽅式。

为了学习⽅便,提供的源码已经作了详细的中⽂注释,看看源码框中的代码:'-----------------------------------------------------' 创建和删除快捷⽅式'-----------------------------------------------------' 洪恩在线求知⽆限'-----------------------------------------------------'------名称-------------------作⽤--------------------' CmdAdd1 "创建test程序组快捷⽅式"按钮' CmdAdd2 "创建桌⾯快捷⽅式"按钮' CmdAdd3 "创建开始菜单快捷⽅式"按钮' CmdAdd4 "创建Test程序组下的快捷⽅式"按钮' CmdDel "删除所有快捷⽅式"按钮'-----------------------------------------------------'要在VB中创建Windows的快捷⽅式,需要⽤到VB的⼀个动态链接库'Vb5stkit.dll。

在该动态链接库中提供了三个函数'OSfCreateShellGroup、OSfCreateShellLink、OSfRemoveShellLink'分别⽤于创建快捷⽅式程序组、创建快捷⽅式和删除快捷⽅式。

C#操作快捷方式(获取快捷方式属性、创建快捷方式)

C#操作快捷方式(获取快捷方式属性、创建快捷方式)

如何使用C#操作快捷方式(获取快捷方式属性、创建快捷方式)近来项目中有需要用到一个技术:使用C#操控快捷方式,包含创建和读取等。

现整理一下实现方式,分享给大家。

第一步创建一个项目无需废话,跳过。

第二步引用COM组件右键“引用”,“添加引用”,选择“COM组件”,找到“Windows Script Host Object Model”,然后确定。

第三步编写创建快捷方式的代码创建快捷方式1// 声明操作对象2 IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShellClass();3// 创建一个快捷方式4 IWshRuntimeLibrary.IWshShortcut shortcut =(IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut("c:\\yeaicc.lnk");5// 关联的程序6 shortcut.TargetPath = "notepad.exe";7// 参数8 shortcut.Arguments = "c:\\yeaicc.txt";9// 快捷方式描述,鼠标放到快捷方式上会显示出来哦10 shortcut.Description = "我的快捷方式--yeaicc";11// 全局热键12 shortcut.Hotkey = "CTRL+SHIFT+N";13// 设置快捷方式的图标,这里是取程序图标,如果希望指定一个ico文件,那么请写路径。

14 shortcut.IconLocation = "notepad.exe, 0";15// 保存,创建就成功了。

16 shortcut.Save();第四步读取快捷方式属性获取快捷方式属性1 IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShellClass();2 IWshRuntimeLibrary.IWshShortcut shortcut =(IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut("c:\\yeaicc.lnk");3// 亲,根据刚刚创建时的代码,你想获取什么属性?4 MessageBox.Show(ws.Description);附:1.注意://shortcut.Hotkey = ""; 若此值为空,有可能创建不了快捷方式2.获取当前系统桌面路径string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);。

C++实现添加桌面右键新建菜单

C++实现添加桌面右键新建菜单

C++实现添加桌⾯右键新建菜单对于程序员来说,新建⼀个cpp⽂件是再频繁不过的事情了。

为了⽅便,我们习惯在桌⾯右键新建⽂件,⽽不是新建⼀个⽂本⽂档,然后修改后缀名。

百度⾕歌查询了⼀下,终于知道如何添加注册表。

⼿痒,抽出时间⽤cpp写了⼀个程序,⽅便以后操作。

客户需求是永远⽆法满⾜的,经同学测试,陆续写了三个版本。

接下来直接贴代码~第⼀个版本,只能添加c、cpp、java三种后缀。

/** Author: Haipz* School: HDU* File Name: registry1.0.cpp*/#include <cstdio>#include <cmath>#include <ctime>#include <cctype>#include <cstring>#include <cstdlib>#include <climits>#include <cfloat>#include <iostream>#include <vector>#include <stack>#include <queue>#include <set>#include <map>#include <algorithm>using namespace std;char s[1024], buffer[128], result[1024*4];void work_1() {system("reg add \"HKEY_CLASSES_ROOT\\.c\\ShellNew\" /v \"NullFile\" /t REG_SZ");}void work_2() {system("reg add \"HKEY_CLASSES_ROOT\\.cpp\\ShellNew\" /v \"NullFile\" /t REG_SZ");}void work_3() {system("reg add \"HKEY_CLASSES_ROOT\\.java\\ShellNew\" /v \"NullFile\" /t REG_SZ");}int main() {printf("Add registry for C, C++ and Java\n");printf("Author: Haipz\nSchool: HDU\n");printf("1 for C;\n2 for C++;\n3 for Java.\n");printf("Example: 12 to add C and C++.\n");printf("Please make choice(s): ");gets(s);for (int i = 0; s[i] != '\0'; ++i) {printf("Working...\n");if (s[i] == '1') work_1();else if (s[i] == '2') work_2();else if (s[i] == '3') work_3();else printf("%c is a wrong enter!\n", s[i]);}system("pause");return 0;}第⼆个版本,精简了代码,⽀持添加⽤户输⼊的后缀。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC MFC 创建桌面快捷方式
2010-06-30 15:12
BOOL CreateDesktopShotCut( CString strName, CString strSourcePath ) {
if(FAILED(CoInitialize(NULL)))
{
return FALSE;
}
int i;
char Path[MAX_PA TH+1];
CString strDestDir;
i=CSIDL_DESKTOPDIRECTORY;
LPITEMIDLIST pidl;
LPMALLOC pShell;
if(SUCCEEDED(SHGetMalloc(&pShell)))
{
if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,i,&pidl)))
{
if(!SHGetPathFromIDList(pidl,Path))
{
pShell->Free(pidl);
::CoUninitialize();
return FALSE;
}
pShell->Release();
strDestDir.Format("%s",Path);
strDestDir+="\\";
strDestDir+=strName;//设置桌面快捷方式的名字
strDestDir+=".lnk";
IShellLink* psl;
if(SUCCEEDED(CoCreateInstance(CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,IID_ IShellLink,(LPVOID*)&psl)))
{
psl->SetPath(strSourcePath);//设置快捷方式的目标位置
//比如目标位置为C:\windows\a.txt 起始位置就应该设置为C:\windows否则会导致不可预料的错误
//如果是文件夹的快捷方式起始位置和目标位置可以设置为一样
psl->SetWorkingDirectory(strSourcePath); //设置快捷方式的起始位置
IPersistFile* ppf;
if(SUCCEEDED(psl->QueryInterface(IID_IPersistFile,(LPVOID*)&ppf)))
{
WCHAR wsz[MAX_PA TH];
MultiByteToWideChar(CP_THREAD_ACP,MB_PRECOMPOSED,strDestDir,-1,wsz,MAX_PA T
H);//设置桌面快捷方式的名字
if(SUCCEEDED(ppf->Save(wsz,TRUE)))//保存快捷方式到桌面
{
ppf->Release();
psl->Release();
::CoUninitialize();
return TRUE;
}else
{
ppf->Release();
psl->Release();
::CoUninitialize();
return FALSE;
}
}else
{
ppf->Release();
psl->Release();
::CoUninitialize();
return FALSE;
}
}else
{
::CoUninitialize();
return FALSE;
}
}else
{
::CoUninitialize();
return FALSE;
}
}else
{
::CoUninitialize();
return FALSE;
}
}。

相关文档
最新文档