Explorar o código

1、CFormView对话框要添加背景,只能在OnPaint中处理,在OnDraw中无效;

scbc.sat2 %!s(int64=5) %!d(string=hai) anos
pai
achega
c62883d63c

+ 40 - 0
SATHelper/SATHelper/DeviceView.cpp

@@ -26,6 +26,8 @@ void CDeviceView::DoDataExchange(CDataExchange* pDX)
 }
 
 BEGIN_MESSAGE_MAP(CDeviceView, CFormView)
+	ON_WM_PAINT()
+	ON_WM_CTLCOLOR()
 END_MESSAGE_MAP()
 
 
@@ -55,3 +57,41 @@ void CDeviceView::OnInitialUpdate()
 
 	// TODO: 在此添加专用代码和/或调用基类
 }
+
+
+void CDeviceView::OnDraw(CDC* /*pDC*/)
+{
+	// TODO: 在此添加专用代码和/或调用基类
+}
+
+
+void CDeviceView::OnPaint()
+{
+	CPaintDC dc(this); // device context for painting
+					   // TODO: 在此处添加消息处理程序代码
+					   // 不为绘图消息调用 CFormView::OnPaint()
+
+	CRect rc;
+	GetWindowRect(&rc);
+	CImage mImage;
+	if (mImage.Load(_T("bk.jpg")) == S_OK)
+	{
+		//这里让图片绘制区域和窗口大小一致
+		mImage.Draw(GetDC()->GetSafeHdc(), CRect(0, 0, rc.Width(), rc.Height()));
+	}
+}
+
+
+HBRUSH CDeviceView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
+{
+	HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
+
+	// TODO:  在此更改 DC 的任何特性
+	if (nCtlColor == CTLCOLOR_STATIC)
+	{
+		pDC->SetBkMode(TRANSPARENT);//<设置背景透明
+		return (HBRUSH)::GetStockObject(NULL_BRUSH);
+	}
+	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
+	return hbr;
+}

+ 3 - 0
SATHelper/SATHelper/DeviceView.h

@@ -29,6 +29,9 @@ protected:
 	DECLARE_MESSAGE_MAP()
 public:
 	virtual void OnInitialUpdate();
+	virtual void OnDraw(CDC* /*pDC*/);
+	afx_msg void OnPaint();
+	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
 };
 
 

+ 3 - 5
SATHelper/SATHelper/MainFrm.cpp

@@ -376,13 +376,11 @@ BOOL CMainFrame::CreateDockingWindows()
 	}
 #endif
 
-	// 创建属性窗口
-	CString strPropertiesWnd;
-	bNameValid = strPropertiesWnd.LoadString(IDS_PROPERTIES_WND);
-	ASSERT(bNameValid);
+	// 创建遥控器窗口
+	CString strPropertiesWnd = _T("遥控器");
 	if (!m_wndIRControl.Create(strPropertiesWnd, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
 	{
-		TRACE0("未能创建“属性”窗口\n");
+		TRACE0("未能创建“遥控器”窗口\n");
 		return FALSE; // 未能创建
 	}
 

+ 8 - 1
SATHelper/SATHelper/Resource.h

@@ -114,6 +114,13 @@
 #define IDB_UNCHECKED                   311
 #define DLG_DEVICEMANAGER               312
 #define DLG_UB530VIEW                   314
+#define IDC_COMBO1                      1000
+#define IDC_COMBO2                      1001
+#define IDC_CHECK1                      1002
+#define IDC_CHECK2                      1003
+#define IDC_BUTTON1                     1004
+#define IDC_BUTTON2                     1005
+#define IDC_EDIT1                       1006
 #define ID_WRITE_PASTEASHYPERLINK       32770
 #define ID_TRAYMENU_RECONNECT           32771
 #define ID_TRAYMENU_EXIT                32772
@@ -150,7 +157,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        316
 #define _APS_NEXT_COMMAND_VALUE         32810
-#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_CONTROL_VALUE         1007
 #define _APS_NEXT_SYMED_VALUE           310
 #endif
 #endif

+ 14 - 3
SATHelper/SATHelper/SATHelper.rc

@@ -441,10 +441,21 @@ BEGIN
     DEFPUSHBUTTON   "确定",IDOK,113,41,50,14,WS_GROUP
 END
 
-DLG_DEVICEMANAGER DIALOGEX 0, 0, 312, 177
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER
+DLG_DEVICEMANAGER DIALOGEX 0, 0, 313, 177
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
+    GROUPBOX        "设备列表",IDC_STATIC,7,7,299,65
+    LTEXT           "信号仪1:",IDC_STATIC,17,26,37,8
+    COMBOBOX        IDC_COMBO1,58,24,60,58,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "信号仪2:",IDC_STATIC,18,41,37,8
+    COMBOBOX        IDC_COMBO2,58,40,60,58,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "启动",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,126,26,32,10
+    CONTROL         "启动",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,126,41,32,10
+    PUSHBUTTON      "调试",IDC_BUTTON1,159,23,50,14
+    PUSHBUTTON      "调试",IDC_BUTTON2,159,39,50,14
+    EDITTEXT        IDC_EDIT1,7,89,299,81,ES_MULTILINE | ES_AUTOHSCROLL | WS_VSCROLL
+    LTEXT           "调试输出:",IDC_STATIC,7,79,41,8
 END
 
 DLG_UB530VIEW DIALOGEX 0, 0, 224, 103
@@ -512,7 +523,7 @@ BEGIN
     DLG_DEVICEMANAGER, DIALOG
     BEGIN
         LEFTMARGIN, 7
-        RIGHTMARGIN, 305
+        RIGHTMARGIN, 306
         TOPMARGIN, 7
         BOTTOMMARGIN, 170
     END