api的理解问题(10分)

  • 主题发起人 主题发起人 wuqvei2002
  • 开始时间 开始时间
W

wuqvei2002

Unregistered / Unconfirmed
GUEST, unregistred user!
声明 :drawtext(HDC hdc,LPCTSTR lpString,int nCount,LPRECT lpRect,UINT uFormat);<br>我要在form上显示,其中 参数hdc 书上解释是“要显示文字的设备的句柄”,我直接用Tform1。handle<br>为什么不行,一定取要Canvas.handle
 
GetDC(Form1.Handle)--就是Canvas.handle<br><br>Tform1。handle是窗口句柄啊!
 
一定要用上GetDC()吗 不可以直接拿Form1.Handle的值来用吗 ?
 
那时当然!
 
还有点不明白,我是在form1上显示,为什么参数hdc 不是取Form1.Handle呢
 
thanks 分不是很多,留着还有很多要问的呢
 
讲不清楚,看看Windows 程序设计的书啊!我口才不好!
 
Form1.Handle<br>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br>Canvas.Handle<br>00000000000000000000000000000000<br><br><br>00000000000000000000000000000000<br>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br>
 
to Nizvoo;具体说呢 分不够再加 刚入门的 很重要
 
thanks ,tan_jian
 
&nbsp; &nbsp;还有点不明白,我是在form1上显示,为什么参数hdc 不是取Form1.Handle呢<br>&nbsp; &nbsp; 我是新手,对于你后一个问题提一点想法:我想是不是因为他们所被存储的区域不同呢,<br>&nbsp; &nbsp; Form是一个类,连同它属于它的的所有东西,会在存储区域按一定结构把它们存储起来,<br>&nbsp; &nbsp; 至于它的句柄是为了找到这块区域,以便我们获得相关的数据。<br>&nbsp; &nbsp; 而它的画布句柄应该是和显示设备相关联的,有关显示设备信息的数据好象有专门的<br>&nbsp; &nbsp;是程序区应该是分开的,所以对于操作系统而言要采取不同的标识,我是这样想的,不知<br>&nbsp; &nbsp;对也不对,希望能听到高手的讲解,关注:)
 
&nbsp; <br>---RE:还有点不明白,我是在form1上显示,为什么参数hdc 不是取Form1.Handle呢<br>&nbsp; &nbsp;<br>&nbsp; &nbsp;不好意思有点不清楚, 我是新手,对于你后一个问题提一点想法:我想是不是因为他们所被存储的区域不同呢,<br>&nbsp; &nbsp; Form是一个类,连同它属于它的的所有东西,会在存储区域按一定结构把它们存储起来,<br>&nbsp; &nbsp; 至于它的句柄是为了找到这块区域,以便我们获得相关的数据。<br>&nbsp; &nbsp; 而它的画布句柄应该是和显示设备相关联的,有关显示设备信息的数据好象有专门的区域对其进<br>&nbsp; &nbsp;行存储,和程序区应该是分开的,所以对于操作系统而言要采取不同的标识,我是这样想的,不知<br>&nbsp; &nbsp;对也不对,希望能听到高手的讲解,关注:)<br>
 
XXXXXXXXXXXXXXXX<br>&nbsp; &nbsp; property Handle: HDC read GetHandle write SetHandle;<br><br>XXXXXXXXXXXXXXXXXXXX
 
多人接受答案了。
 
&nbsp; &nbsp;Nizvoo说的对,窗口句柄应该都是一样的,不是我说的“不同的标识”,不同的是<br>&nbsp; &nbsp; TForm和TCanvas,<br>&nbsp; &nbsp; 但我的程序中:DC:=GetDC(Form1.Handle);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DC:=Form1.Canvas.Handle;<br>&nbsp; &nbsp; 两次得到的结果是不同的,与tan_jian所说不同。却不知为何?<br><br>&nbsp; &nbsp;
 
后退
顶部