得到Windows资源

CWnd::GetWindow

CWnd* GetWindow( UINT nCmd ) const;

返回值:
返回要求的窗口指针;如果没有,则返回NULL。
返回的指针可能是临时的,不应保存以供将来使用。

参数:
nCmd指定了CWnd和返回的窗口之间的关系。可以取下列值之一:
·GW_CHILD标识了CWnd的第一个子窗口。
·GW_HWNDFIRST如果CWnd是一个子窗口,则返回它的第一个兄弟窗口;否则返回列表中的第一个顶层窗口。
·GW_HWNDLAST如果CWnd是一个子窗口,则返回最后一个兄弟窗口;否则返回列表中的最后一个顶层窗口。
·GW_HWNDNEXT返回窗口管理器中的下一个窗口。
·GW_HWNDPREV返回窗口管理器中的前一个窗口。
·GW_OWNER标识了CWnd的拥有者。



CWnd::GetWindowContextHelpId

DWORD GetWindowContextHelpId( ) const;

返回值:帮助上下文标识符。如果窗口没有帮助上下文,则返回0。

说明:调用这个函数以获得与窗口相关的帮助上下文标识符,如果有的话。  




CWnd::GetWindowDC

CDC* GetWindowDC( );

返回值:
如果这个函数成功,则返回给定窗口的显示环境;否则返回NULL。
返回的指针可能是临时的,不应保存以供将来使用。在每次成功地调用了GetWindowDC之后,必须调用ReleaseDC。

说明:
这个函数获得整个窗口的显示环境,包括标题条、菜单和滚动条。窗口的显示环境允许程序在CWnd的任何地方绘图,因为该环境的原点是在CWnd的左上角,而不是客户区的左上角。
每次获得环境的时候都给它赋以缺省的属性。以前的设置将会丢失。
GetWindowDC用于在CWnd的非客户区实现特殊的绘图效果。不推荐在任何窗口的非客户区绘图。
可以利用Windows的GetSystemMetrics函数来获得非客户区的不同部分的大小,如标题条、菜单和滚动条。
在绘图结束以后,必须调用ReleaseDC成员函数以释放显示环境。如果没有成功地释放显示环境,则可能会严重影响应用程序要求的绘图,因为在同一时刻能打开的显示设备环境的数目是有限的。




CWnd::GetWindowPlacement

BOOL GetWindowPlacement( WINDOWPLACEMENT* lpwndpl ) const;

返回值:如果函数执行成功,则返回非零值;否则返回0。

参数:

lpwndpl指向一个WINDOWPLACEMENT结构,用于接收显示状态和位置信息。

说明:
这个函数获得窗口的显示状态和正常(复原的)、最小化和最大化的位置。
这个函数获得的WINDOWPLACEMENT结构中的flags成员总是0。如果CWnd是最大化的,则WINDOWPLACEMENT的showCmd成员为SW_SHOWMAXIMIZED。如果窗口是最小化的,则为SW_SHOWMINIMIZED;否则它为SW_SHOWNORMAL




CWnd::GetWindowRect


void GetWindowRect( LPRECT lpRect ) const;


参数: lpRect 指向一个CRect对象或RECT结构,用于接收左上角和右下角的屏幕坐标。  


说明:
这个函数将CWnd对象的边界矩形的大小拷贝到lpRect所指向的结构中。大小是用相对于显示器屏幕左上角的屏幕坐标给出的,其中包括了标题条,边框和滚动条的大小,如果有的话。




CWnd::GetWindowRgn

int GetWindowRgn( HRGN hRgn )const;

返回值:
返回值指定了该函数获得的区域的类型。可以是下列值之一:

·NULLREGION区域为空。
·SIMPLEREGION区域是一个简单的矩形。
·COMPLEXREGION区域包括多于一个矩形。
·ERROR发生了错误,区域没有受到影响。参数hRgn窗口区域的句柄。

参数:
hRgn窗口区域的句柄。

说明:
调用这个成员函数以获得窗口的窗口区域。窗口区域确定了操作系统允许画出窗口的区域。操作系统不会在窗口区域之外显示窗口的任何部分。窗口的窗口区域的坐标是相对于窗口的的左上角的,不是窗口的客户区域。要设置窗口的窗口区域,调用CWnd::SetWindowRgn。



CWnd::GetWindowText

int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;
void GetWindowText( CString& rString ) const;

返回值:
指定了要拷贝的字符串的长度,以字节为单位,不包括结尾的空字符。如果CWnd没有标题或标题为空,则为0。

参数:

lpszStringBuf指向要接收窗口标题的复制字符串的缓冲区。
nMaxCount指定了要拷贝的缓冲区的最大字符数目。如果字符串比nMaxCount指定的数目还要长,则被截断。
rString用于接收窗口标题的复制字符串的CString对象。

说明:
这个函数将CWnd的标题(如果有)拷贝到lpszStringBuf指向的缓冲区或者目的字符串rString。如果CWnd对象是一个控件,则GetWindowText成员函数将拷贝控件内的文本(而不是控件的标题)。这个成员函数会向CWnd对象发送一个WM_GETTEXT消息。


CWnd::GetWindowTextLength

int GetWindowTextLength( ) const;

返回值:指定了文本的长度,不包括任何结尾的空字符。如果不存在任何文本,则返回0。

说明:
返回CWnd的标题对象的长度。如果CWnd是一个控件,则GetWindowTextLength成员函数返回控件内文本的长度(而不是标题的长度)。这个成员函数会向CWnd对象发送一个WM_GETTEXTLENGTH消息。




这个函数经常用到;


CWnd::ScreenToClient

void ScreenToClient( LPPOINT lpPoint ) const;
void ScreenToClient( LPRECT lpRect ) const;

参数:

lpPoint指向一个CPoint对象或POINT结构,其中包含了要转换的屏幕坐标。
lpRect指向一个CRect对象或RECT结构,其中包含了要转换的屏幕坐标。

说明:
将显示器上给定点或矩形的屏幕坐标转换为客户坐标。
ScreenToClient成员函数将lpPoint或lpRect给定的屏幕坐标替换为客户坐标。新的坐标是相对于CWnd客户区的左上角的。


就是转换坐标系;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows PE 文件中,资源文件以资源段的形式存储,通常被称为“资源节”。资源节包含了多个资源,每个资源都有一个独一无二的标识符,可以用来在程序中访问这些资源。 下面介绍一种解析 Windows PE 资源文件的方法: 1. 使用 PE 解析器打开 Windows PE 文件,找到资源节的偏移量和大小。通常资源节的名称是`.rsrc`,其在节表中的偏移量可以通过解析 PE 头文件中的节表结构体得到。 2. 根据偏移量和大小,将资源节从 PE 文件中读取出来,并解析为资源目录表。资源目录表包含了资源的分类信息,比如图标、位图、字符串、对话框等等。 3. 在资源目录表中查找你需要的资源类型,比如图标或位图。资源类型用一个标识符来表示,比如`RT_ICON`和`RT_BITMAP`。 4. 在对应的资源类型目录中查找需要的资源。每个资源类型目录包含了多个资源项,每个资源项都有一个独一无二的标识符和偏移量。可以通过标识符来查找需要的资源项,然后通过偏移量读取出相应的资源数据。 5. 对读取的资源数据进行解析,并进行相应的处理。比如,如果读取的是一个图标文件,可以将其转换为位图或者其他格式,然后在程序中使用。 需要注意的是,不同的资源类型有不同的解析方法,需要根据具体的情况进行处理。此外,也可以使用一些工具来帮助解析 Windows PE 资源文件,比如 Resource Hacker 和 PE Explorer 等工具。这些工具可以提供更方便的资源管理和解析功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值