SystemTray.cpp

_tcscpy
_tcscpy 把参2复制到参1并返回参1
_tcscpy是一个拷贝字符串,源字符串指针是strSource,有strcpy、wcscpy、_mbscpy三种类型,这三种形式都返回目标字符串。

函数原型

char *strcpy( char *strDestination, const char *strSource );
wchar_t *wcscpy( wchar_t *strDestination, const wchar_t *strSource );
unsigned char *_mbscpy( unsigned char *strDestination, const unsigned char *strSource );
常见名称 要求的头文件 兼容方案
strcpy <string.h> ANSI, Win 95, Win NT
wcscpy <string.h> or <wchar.h> ANSI, Win 95, Win NT
_mbscpy <mbstring.h> Win 95, Win NT

参数说明

strDestination 目标字符串指针
strSource 源字符串指针
返回值
三种形式都返回目标字符串.若无返回值,则为保留情况,用来检测错误信息.
说明:
strcpy函数将拷贝strSource, 包括终端的null字符,
wcscpy and _mbscpy为宽字节和多字节版的strcpy.其参数与返回值也是宽字节或多字节的.

SetMenuDefaultItem

说明
将一个菜单条目设为默认条目。这个条目会转换成双击菜单时执行的操作
Declare Function SetMenuDefaultItem Lib “user32” Alias “SetMenuDefaultItem”
(ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long

Win32函数原型:BOOL SetMenuDefaultItem(HMENU hMenu, UINT uItem, UINT fByPos);
参数:
hMenu:将为其设置缺省菜单项的菜单的句柄。
uItem:新缺省菜单项的标识符或位置,无缺省项时,取值为C1。此参数的含义由参数fByPoS的值决定。
fByPos:用于确定参数ultem的值的含义。如果此参数为FALSE,参数ultem表示菜单项的标识符。否则,表示菜单项的位置。
返回值:Long类型,如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。

CWnd::GetSafeHwnd

返回m_hWnd,则为 null这指针为 NULL。

HWND GetSafeHwnd() const;

返回值
返回一个窗口的窗口句柄。 如果返回 NULLCWnd未附加到一个窗口,或如果与 null 值一起CWnd指针。

CWnd::FromHandle
static CWnd* PASCAL FromHandle(HWND hWnd);
在提供了窗口的句柄时返回指向 CWnd 对象的指针。 如果 CWnd 对象未附加到该句柄,则会创建并附加一个临时 CWnd 对象

参数
hWnd
Windows 窗口的 HWND。

返回值
在提供了窗口的句柄时返回指向 CWnd 对象的指针。 如果 CWnd 对象未附加到该句柄,则会创建并附加一个临时 CWnd 对象。
该指针可能是暂时的,不应存储起来供将来使用

GetCursorPos
etCursorPos,函数名。该函数检取光标的位置,以屏幕坐标表示。

函数原型:BOOL GetCursorPos(LPPOINT lpPoint);

参数:
IpPoint:POINT结构指针,该结构接收光标的屏幕坐标。
Visual Basic 6.0 函数声明:
[Public/Private] Declare Function GetCursorPos Lib “user32” Alias “GetCursorPos” (lpPoint As POINTAPI) As Long
  使用时要先定义一个数据结构:
Public Type POINTAPI
x As Long
y As Long
End Type
例如:
Dim biao as POINTAPI
GetCursorPos biao
那么biao.x用来存放当前光标的x轴坐标,biao.y用来存放当前y轴的坐标。
返回值:如果成功,返回值非零;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。

备注

1.光标的位置通常以屏幕坐标的形式给出,它并不受包含该光标的窗口的映射模式的影响。该调用过程必须具有对窗口站的WINSTA_READATTRIBUTES访问权限。
2.此函数为api函数,调用时要函数声明:Public Declare Function GetCursorPos Lib “user32” (lpPoint As POINTAPI) As Long
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。

程序例
#include<stdio.h>
#include<windows.h>
int main(){
POINT p;
while(1)
{
GetCursorPos(&p);
printf("%ld%ld\n",p.x,p.y);
Sleep(1000);
}
return0;}

如何在C#中使用

导入库:user32.lib
***.Net 中运用
[DllImport(“user32.dll”,EntryPoint = “GetCursorPos”)]
public static extern bool GetCursorPos(ref Point lpPoint);
参数说明 ref 或者out 类型为Point结构 .net框架自带 自动添加using即可,该结构接收光标的屏幕坐标
返回值 :布尔值

SetForegroundWindow
https://baike.baidu.com/item/SetForegroundWindow
SetForegroundWindow函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。系统给创建前台窗口的线程分配的权限稍高于其他线程。

函数原型:BOOL SetForegroundWindow(HWND hWnd)。

hWnd , 将要设置前台的窗口句柄…
返回值:如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零。
备注:
前台窗口是z序顶部的窗口,是用户的工作窗口。在一个多任务优先抢占环境中,应让用户控制前台窗口。
Windows NT 5.0:当用户在另一个窗口中工作时,应用程序不能强行设置一个窗口到前台。相反,SetForeground函数将会激活窗口并且调用FlashWindowEx函数通知用户。
Windows CE:拥有窗口的线程不具有优先启动权。
速查:
Windows NT;3.1以上版本;Windows;95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
VB形式声明
Declare Function SetForegroundWindow Lib “user32” (ByVal hwnd As Long) As Long
C#形式声明
[DllImport(“user32”)]
static extern int SetForegroundWindow(IntPtr hwnd);

TrackPopupMenu
https://baike.baidu.com/item/TrackPopupMenu

函数功能:该函数在指定位置显示快捷菜单,并跟踪菜单项的选择。快捷菜单可出现在屏幕上的任何位置。

函数原型:BOOL TrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y, int nReserved, HWND hWnd, CONST RECT* prcRect);

参数一览

hMenu:被显示的快捷菜单的句柄。此句柄可为调用CreatePopupMenu创建的新快捷菜单的句柄,也可以为调用GetSubMenu取得的与一个已存在菜单项相联系的子菜单的句柄。
uFlags:一种指定功能选项的位标志。用下列标志位之一来确定函数如何水平放置快捷菜单:
TPM_CENTERALIGN:若设置此标志,函数将按参数x指定的坐标水平居中放置快捷菜单。
TPM_LEFTALIGN:若设置此标志,函数使快捷菜单的左边界与由参数X指定的坐标对齐。
TPM_RIGHTALIGN:若设置此标志,函数使快捷菜单的右边界与由参数X指定的坐标对齐。
用下列标志位之一来确定函数如何垂直放置快捷菜单:
TPM_BOTTOMALIGN:若设置此标志,函数使快捷菜单的下边界与由参数y指定的坐标对齐。
TPM_TOPALIGN:若设置此标志,函数使快捷菜单的上边界与由参数y指定的坐标对齐。
TPM_VCENTERALIGN;若设置此标志,函数将按参数y指定的坐标垂直居中放置快捷菜单
用下列标志位之一来确定在菜单没有父窗口的情况下用户的选择:
TPM_NONOTIFY:若设置此标志,当用户单击菜单项时函数不发送通知消息。
TPM_RETURNCMD;若设置此标志;函数将用户所选菜单项的标识符返回到返回值里。
(注意:当TrackPopupMenu的返回值大于0,就说明用户从弹出菜单中选择了一个菜单。当不设置TPM_NONOTIFY和TPM_RETURNCMD时,程序给自己发送了一个WM_COMMAND消息,以返回的ID号为参数wParam的值)
用下列标志位之一来确定在快捷菜单跟踪哪一个鼠标键:
TPM_LEFTBUTTON:若设置此标志,用户只能用鼠标左键选择菜单项。
TPM_RIGHTBUTTON:若设置此标志,用户能用鼠标右键选择菜单项。
X:在屏幕坐标下,快捷菜单的水平位置。
Y:在屏幕坐标下,快捷菜单的垂直位置。
NReserved:保留值,必须为零。
HWnd:拥有快捷菜单的窗口的句柄。此窗口接收来自菜单的所有消息。函数返回前,此窗口不接受来自菜单的WM_COMMAND消息。
如果在参数uFlags里指定了TPM_NONOTIFY值,此函数不向hWnd标识的窗口发消息。 但必须给hWnd里传一个窗口句柄,可以是应用程序里的任一个窗口句柄。
PrcRect:未用。
返回值:如果在参数uFlags里指定了TPM_RETURNCMD值,则返回值是用户选择的菜单项的标识符。如果用户未作选择就取消了菜单或发生了错误,则退回值是零。如果没在参数uFlags里指定TPM_RETURNCMD值,若函数调用成功,返回非零值,若函数调用失败,返回零。若想获得更多的错误信息,请调用GetLastError
函数:

备注

Windows CE不支持参数uFlags取下列值:TPM_NONOTIFY;TPM_LEFTBUTTON;TPM_RIGHTBUTTON。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。

SystemTray.cpp相关推荐

  1. Qt浅谈之三十系统托盘(QSystemTrayIcon)

    一.简介 Qt自带的例子/usr/lib64/qt4/examples/desktop/systray中详尽介绍了系统托盘的功能,在其基础上进行拓展,定制适合自己的系统托盘.        托盘菜单实 ...

  2. C++ .h(头文件) 与 .cpp(源文件) 的使用

    .h 文件: .h是头文件 ,里面主要是写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等, 注意.h文件写的时候有特定的格式就是开头和结尾 #ifndef TEST_HEAD ...

  3. 利用VS+MFC+Opencv显示图像和视频所需添加类(CvvImage.h和CvvImage.cpp的源码)。

    CvvImage.h代码: #pragma once #ifndef CVVIMAGE_CLASS_DEF #define CVVIMAGE_CLASS_DEF #include "open ...

  4. UTF-8 CPP的使用

    UTF-8 CPP是一个简单.小巧.轻量级.跨平台的UTF-8编码字符串库. 下面对其使用方法进行简单的介绍: 1.      从http://sourceforge.net/projects/utf ...

  5. 拇指接龙游戏升级记录03(升级MainScene.cpp)

    MainScene是拇指接龙游戏的主游戏场景文件,拥有近5000行代码. 说实在的,实现自cocos2d-x 2.x版本向当下最新的3.8.1版本的升级过程,其中涉及的技术不是一下能够说明的.有些是形 ...

  6. GATB的使用小例子test.cpp

    1.touch test.cpp,,文件夹中 出现test.cpp touch test.cpp 2. test.cpp的内容 #include <gatb/gatb_core.hpp>i ...

  7. Linux下运行.cpp文件

    如何在Ubuntu16下运行一个简单的.cpp文件呢,做法如下: 假设我在桌面上写了一个hell,world程序; 保存为abc.cpp 然后在终端打开: 1.点击保存的文件的属性,看在哪里,我的是在 ...

  8. 2020-10-26runtime error: member access within null pointer of type ‘struct ListNode‘ (solution.cpp)错

    runtime error: member access within null pointer of type 'struct ListNode' (solution.cpp)错误 /*** Def ...

  9. matlab怎么跑.cpp程序,MATLAB编译cpp文件

    目的:打通MATLAB与VC之间的通道,实现用MATLAB调用VC程序,以及VC调用MATLAB程序. 上篇博客实现了将MATLAB的M文件编译成C/C++文件,exe应用程序.这篇实现MATLAB编 ...

最新文章

  1. http 错误 404.0 - not found_python3从零学习-5.10.8、http.client—HTTP 协议客户端
  2. GIt/Github常用命令
  3. mysql在线教程嵌套_MySQL update嵌套
  4. CodeForces Gym-101350M
  5. 逻辑分析仪抓取CAN总线波特率
  6. OS / Linux / epoll 各种事件解析
  7. java经典面试题目
  8. OpenGL: 渲染管线理论
  9. 基于matlab遗传算法工具箱的曲线拟合,基于Matlab遗传算法工具箱的曲线拟合
  10. 生成fnt字体工具BMFontTool工具
  11. 《黑客帝国》代码雨——源代码
  12. 当8081端口被占用了怎么办?
  13. Windows7系统设置相对路径快捷方式
  14. html制作唐诗,Steve:HTML创始人来中国当教师 痴迷李白自称“唐诗”
  15. 影子口令(影子密码)
  16. 九方财富更新招股书:上半年营收9亿 冲刺港股一年未果
  17. 计算机桌面底下显示条,详细教您电脑屏幕出现条纹怎么办
  18. 一加8T 原装65W WARP闪充 充电功率记录
  19. 高空简易水果采摘装置设计(CAD+proe)
  20. 内部版本7600无法安装ie9浏览器

热门文章

  1. 周鸿祎:在360新员工入职培训上的讲话
  2. TCP三次握手及四次挥手详解
  3. asp.net如何取得纯客户端控件的值
  4. 网络爬虫--9.正则表达式
  5. Vue.js前后端分离2
  6. 通过__tablename__ = 'xxx' #定义表名
  7. java中 怎么获取bean_java普通类如何得到spring中的bean类
  8. input子系统基础之按键2——input设备应用层编程实践
  9. 白话debounce和throttle
  10. VBA学习_5:流程控制