Windows API一日一练(37)MoveWindow函数

原创 2007年09月16日 12:48:00
当你设计一个对话框的窗口时,就需要布局好所有按钮、文本显示框等等,由于每个按钮都是一个窗口,那么就需要移动这些窗口到合适的位置,这时就需要使用到MoveWindow函数。或者当你的界面需要动态地修改按钮位置,比如窗口放大了,按钮就需要跟着移动,否则按钮还在原来的位置,放大也不会移动按钮的位置,这时也需要使用MoveWindow函数重新设置按钮的位置。只要你想移动窗口,就可以考虑使用这个函数来实现。
 
函数MoveWindow声明如下:
WINUSERAPI
BOOL
WINAPI
MoveWindow(
    __in HWND hWnd,
    __in int X,
    __in int Y,
    __in int nWidth,
    __in int nHeight,
    __in BOOL bRepaint);
hWnd是窗口的句柄。
X是窗口在X轴的位置。
Y是窗口在Y辆的位置。
nWidth是窗口的宽度。
nHeight是窗口的高度。
bRepaint是设置是否重画窗口和父窗口。当设置为TRUE时,就进行重画。当设置为FALSE时,就不进行重画,需要手功进行更新指定的区域。
 
调用这个函数的例子如下:
#001 //
#002 // 响应命令.
#003 // 蔡军生 2007/09/16 QQ:9073204
#004 //
#005 LRESULT CCaiWinMsg::OnCommand(int nID,int nEvent)
#006 {
#007  // 菜单选项命令响应:
#008  switch (nID)
#009  {
#010  case IDC_CREATEBTN:
#011         //显示一个按钮。
#012         if (!m_hBtn)
#013         {
#014                m_hBtn = CreateWindow(_T("BUTTON"),_T("按钮"),
#015                    WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
#016                    50,50,100,32,
#017                     m_hWnd,(HMENU)IDC_BTN,m_hInstance,NULL);
#018         }                                          
#019         break;
#020  case IDC_BTN:
#021         OutputDebugString(_T("按钮按下/r/n"));
#022         {
#023               static bool bChangeText = true;
#024               if (bChangeText)
#025               {
#026                    //设置按钮的文字。
#027                    SetWindowText(m_hBtn,_T("改变它"));
#028 
#029                    //改变按钮窗口的位置和大小。
#030                   MoveWindow(m_hBtn,10,10,100,32,TRUE);
#031               }
#032               else
#033               {
#034                    //设置按钮的文字。
#035                    SetWindowText(m_hBtn,_T("按钮"));
#036 
#037                   //改变按钮窗口的位置和大小。
#038                   MoveWindow(m_hBtn,50,50,100,32,TRUE);
#039               }
#040 
#041               //每一次都改变。
#042               bChangeText = !bChangeText;
#043         }
#044         break;
#045  default:
#046         return CCaiWin::OnCommand(nID,nEvent);
#047  }
#048 
#049  return 1;
#050 }
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Windows API一日一练(29)SelectObject和DeleteObject函数

Windows显示设备的属性,共有下面几种:位图、画刷、字体、画笔、区域。如果要设置它们到当前设备里,就需要使用SelectObject函数,比如上面介绍的字体设置,就会用到这个函数。当你创建一个位图...

WinCE CEDDK之IO访问函数

作者:ARM-WinCE CEDDK就是CE的DDK,其中封装了一些驱动开发会用到的函数。有时在开发驱动的时候用CEDDK中的函数会比较方便,使用的时候需要连接ceddk.dll,源代码为于WinCE...

Windows API一日一练(32)CreatePen函数

画画是讲究色彩与线条,不同的地方是采用不同的画笔。上面显示直线,都是采用设备缺省的画笔来画直线。现在就来介绍怎么样创建自己的画笔,比如设置画笔的颜色,画笔的大小。像Windows按钮显示为3D的形状,...

Windows API一日一练(27)SetBkMode函数

上面已经介绍输出红色的字符串时,发现背景的黑色也变成白色了,这样的输出是破坏背景的。那需要使用什么方法来保持背景不变,而又能输出红色的字符串呢?比如按钮的文字颜色是黑色的,而背景是灰色的。这就需要使用...

Windows API一日一练(36)SetWindowText函数

在开发软件里,有时候需要改变窗口上标题的文字。比如按钮上的文字,为了适应多国语言的显示,就需要改变它显示的内容。这时就需要使用SetWindowText函数来改它的内容。下面的例子就实现改变按钮的标题...

Windows API一日一练(34)GetSysColor函数

当你需要自己显示一个与众不同的按钮时,就需要使用下面的方法来创建。当然这里也是综合地使用前面学习过的知识进行一次综合的练习。演示怎么样使用众多的API函数,这里还可以学会使用GetSysColor函数...

Windows API一日一练(31)MoveToEx和LineTo函数

现在的世界流行图形界面,而不是文字,因此在软件开发里,肯定需要画图的,比如简单地画线,画一些比较特别的图形。比如让你画一个走动的时钟,就需要不断地画秒针、分针等等。MoveToEx是用来移动当前画笔的...

Windows API一日一练(33)ExtCreatePen函数

使用前面介绍的CreatePen函数来画大于1的直线时,会发现直线两端全是圆角的,有时候需要画得有角,那么这样的函数就不满足需求了,这时就需要使用另一个API函数ExtCreatePen来创建合适的画...

Windows API一日一练(39)AnimateWindow函数

当你开发一款年轻人使用的软件时,肯定想用一点动感的特性来吸引他们。比如QQ软件就有这个特性,当你把它放到桌面边上时,就会自动隐藏起来,当你的鼠标放到那里时,就会自动慢慢移动出来,副有动感的特性,肯定让...

Windows API一日一练(35)OutputDebugString函数

在软件的开发过程里,大部份时间是在做什么呢?其实是在调试代码,毕竟人类的思维方式是从简单到复杂的过程,自然的认知过程也是从简单到复杂。因此,开发软件时,第一个版本总是先写简单的,然后慢慢地添加出错处理...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)