VC++MFC 如何获取窗口中d出式菜单的句柄

VC++MFC 如何获取窗口中d出式菜单的句柄,第1张

实现多语言,有个简单的办法。

就是把这种已有的资源都写到配置文件里去,根据多语言都分别新增多个对应的配置文件,然后根据选择的语言调用不同地的配置文件更新,即可实现多语言界面。

如果都是UI资源,就在RC文件中就有。

了解什么是句柄就好理解了

就是获得这个窗口的识别代码

句柄就是用来区分各种内存对象的唯一标识符号,是个32位整数。

有些是整个系统唯一(如窗口句柄),有些是当前进程或线程中唯一

(如线程句柄,全局的有另一个标识符)。

详细的可分为许多种,都是以H开头的。在VB中使用时全部都用Long。

常见的有窗口句柄(HWND),设备描述表句柄(HDC),内存句柄(HMEM),

文件句柄,进程句柄,线程句柄,笔的类型句柄(HPEN),字体句柄(HFONT),

区域句柄(HRGN)等等。

在申请句柄时是要占用资源的,分三类SYSTEM、USER、GDI。

而WINDOWS的资源是固定的,并不随内存的扩大而扩大,所以使用完以后一定要释

放。

>

如果只用VB本身的代码一般是不会用到句柄的,但要是使用API函数的话,

大多数会使用。

再Windows系统中,句柄(我一直觉得这个词翻译得特别别扭)分为三大类:Kernel

Handle、UserHandle和应用程序自定义的Handle。

KernelHandle实际上是进程内Kernel对象的指针表索引,Kernel对象包括进程、文

件、信号等。但是MS为了掩盖着一事实,在系统启动时生成了一个所谓Obsfucator的值

(其实应该是Obfuscator,MicrosoftBugs(R):),生成Handle后将Handle与这个值异

或后返回给应用程序,所以看到的Handle都是一些很大而且毫无意义的数字。这些

Handle和索引的对象是由KRNL32DLL和VMM32VXD共同管理的,所以称之为Kernel

Handle。

UserHandle是用来标示窗口、DC等对象的,他们是真实的指针,但指向的并不是对象

的开头,有一个偏移量。同样,这些对象是由USER32DLL管理的。

第三种Handle不过是应用程序自定义的一些索引之类的东东,具体的意义和应用程序相关

你把我的电脑打开,窗口上的工具栏中有个文件夹,你打开之后,现在呈现的窗口就叫资源管理器,在任何盘中打开都一样,然后在左边窗格中就能看到所有的盘和文件夹了,他前面有加号的表示以下还有子目录,可以展开,你可以点击加号展开你所要的文件夹了。要备份的话,你就把这个文件夹的全部复制一份到其他地方就行了。以下是我的电脑展开的这个文件夹:

OpenFileDialog openFile = new OpenFileDialog();

openFileMultiselect = true;

openFileFilter = " (jpg)|jpg|所有文件 ()|";

if (openFileShowDialog() == DialogResultOK)

{

string ss = openFileFileName;

string ww = openFileFileNameRemove(openFileFileNameLength - 4, 4);

FileCopy(ss, @"\\picture\" + PathGetFileName(ss));

}

上面是先获取路径,在把复制到指定路径下。

先写一个定时获取前台窗口的程序运行着,然后打开游戏运行一下再退出,接着看看记录下来的窗口类,排除那些你认识的比如资源管理器等,再从剩下的中找一个最像的,期间最好不要打开别的窗口,然后写一个后台程序,再运行游戏,试着对它进行一些 *** 作看有没有效果。

以上就是关于VC++/MFC 如何获取窗口中d出式菜单的句柄全部的内容,包括:VC++/MFC 如何获取窗口中d出式菜单的句柄、获取窗口句柄有什么用、"计算机系统的资源管理器窗口"在电脑的哪里相关问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9336112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存