main_window = QtWidgets.QWidget.find(TestApp.GetMainWidget())
dlg = MyUIDialog( main_window )
一.对话框QDialog
之前有说到,QDialog类负责对话框部件,继承于QWidget类。对话框一般用于实现用户交互,弹出一个顶层窗口。很多不适合放在主窗口的功能都可以放在对话框中。
QDialog类及其子类对于parent指针有特别的设置:如果parent为NULL,那么该对话框独立作为一个顶层窗口;若paren
在没有接触Gdiplus之前,在vc中绘制图片,通常加载一张位图,然后进行贴图。对于现在多种多样的图片格式,之前的GDI并不支持(应该是这样的,呵呵)。而使用Gdiplus则可以选择多种图片格式,比如BMP, ICON, GIF, JPEG, Exif, PNG, TIFF, WMF, and EMF。
下面就介绍下首次接触Gdiplus的一个简单应用。
一、包括相应的头文件及引入
在写MFC程序时,当需要动态创建一些控件的时候,需要传递一个ID给相应的控件,比如创建一个按钮
CButton m_bnTestButton;
m_bnTestButton.Create( _T("我的按钮"), WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON, CRect( 10, 10, 80, 40 ), this, IDC_MY_BTN );
我们知道,
::SetCursor( ::LoadCursor( NULL, IDC_HAND ) );
LoadCursor第一个参数必须为NULL,否则会载入失败。如果以以下方式调用,则会失败:
::SetCursor( ::LoadCursor( AfxGetApp()->LoadCursor( IDC_HAND ) ) );
或::
使用GetClientRect与GetWindowRect
计算水平、垂直非客户区大小
使用GetWindowRect获取主窗口的大小, 再通过GetClientRect获取客户端大小,然后通过这两个值计算出水平、垂直非客户区占的大小
计算主窗口大小
由上一步计算得到的非客户区大小加大期望的客户区大小,即为主窗口的大小
以下是设置非客户区大小为500*300的例子: CRect clien