在對話方塊(CDialog)中使用分割窗(CSplitterWnd)
原文見:
可以使用以下三個步驟在對話方塊中建立分割窗:
1. In the OnCreate function or your CDialog, register a new WindowClass by calling "AfxRegisterWndClass".
在你的CDialog類的OnCreate函式中使用AfxRegisterWndClass註冊一個新的視窗類。
2. Create a new CFrameWnd by using the "new" operator and initialize it.
使用new操作符建立一個CFrameWnd,並對其進行初始化。
3. Create your splitter by using the new CFrameWnd you just created as the parent.
在步驟2中建立的CFrameWnd上建立分割窗。
主要程式碼:
- int CMyDialog::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CDialog::OnCreate(lpCreateStruct) == -1)
- return -1;
- // Initialize a context for the view. CMyTreeView is my view and
- // is defined as : class CMyTreeView : public CTreeView.
- CCreateContext ccc;
- ccc.m_pNewViewClass = RUNTIME_CLASS(CMyTreeView);
- ccc.m_pCurrentDoc = NULL;
- ccc.m_pNewDocTemplate = NULL;
- ccc.m_pLastView = NULL;
- ccc.m_pCurrentFrame = NULL;
- // Because the CFrameWnd needs a window class, we will create
- // a new one. I just copied the sample from MSDN Help.
- // When using it in your project, you may keep CS_VREDRAW and
- // CS_HREDRAW and then throw the other three parameters.
- CString strMyClass = AfxRegisterWndClass(CS_VREDRAW |
- CS_HREDRAW,
- ::LoadCursor(NULL, IDC_ARROW),
- (HBRUSH) ::GetStockObject(WHITE_BRUSH),
- ::LoadIcon(NULL, IDI_APPLICATION));
- // Create the frame window with "this" as the parent
- m_pMyFrame = new CFrameWnd;
- m_pMyFrame->Create(strMyClass,"", WS_CHILD,
- CRect(0,0,1,1), this);
- m_pMyFrame->ShowWindow(SW_SHOW);
- m_pMyFrame->MoveWindow(0,0,300,300);
- // and finally, create the splitter with the frame as
- // the parent
- m_wndSplitter.CreateStatic(pMyFrame,1, 2);
- m_wndSplitter.CreateView(0,0, RUNTIME_CLASS(CMyTreeView),
- CSize(100,100), &ccc);
- m_wndSplitter.CreateView(0,1, RUNTIME_CLASS(CMyTreeView),
- CSize(100,100), &ccc);
- }
- BOOL CMyDialog::OnInitDialog()
- {
- CDialog::OnInitDialog();
- CRect rect;
- // Get the rectangle of the custom window. The custom window
- // is just a a big button that is not visible and is disabled.
- // It's a trick to not use coordinates directly.
- GetDlgItem(IDC_CUTSOM_WINDOW)->GetWindowRect(&rect);
- // Move the splitter
- ScreenToClient(&rect);
- m_pFrameWnd->MoveWindow(&rect);
- m_pFrameWnd->ShowWindow(SW_SHOW);
- m_wndSplitter.MoveWindow(0,0, rect.Width(), rect.Height());
- m_wndSplitter.ShowWindow(SW_SHOW);
- return TRUE; // return TRUE unless you set the focus to a
- // control
- // EXCEPTION: OCX Property Pages should return
- // FALSE
- }
相關推薦
在對話方塊(CDialog)中使用分割窗(CSplitterWnd)
原文見: 可以使用以下三個步驟在對話方塊中建立分割窗: 1. In the OnCreate function or your CDialog, register a new WindowClass by calling "AfxRegisterWndClass".
Android中對話方塊右上角關閉懸浮按鈕的實現(總結)
其實很簡單,步驟如下: 1、需要把對話方塊的預設背景改為透明。 方法:自定義Dialog的樣式。 <!--對話方塊透明背景--> <style name="Translucent_NoTitle" parent="android:style/Theme
VS2013/MFC程式設計:(對話方塊:為控制元件新增訊息處理函式)
建立對話方塊類和新增控制元件變數在上一講中已經講過,這一講的主要內容是如何為控制元件新增訊息處理函式。 MFC為對話方塊和控制元件等定義了諸多訊息,我們對它們操作時會觸發訊息,這些訊息最終由訊息處理函式處理。比如我們點選按鈕時就會產生BN_CLICKED訊息,修改編輯框內容時會產生EN
【Python】python中分割字串(含多種分割符)的方法
Date: 2018.6.9 1、 參考: 2、分割字串的三種方法 2.1 str.split() 利用字串函式split分割,分割後返回的是分割部分的字元列表,但是 每次只
在AndroidManifest(清單文件)中註冊activity(活動)及配置主活動、更改App圖標、App名稱、修改隱藏標題欄
雙擊 建議 nba cat ima manager ram spa src 打開app/src/main/AndroidManifest。 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xm
遍歷所有子物體中renderer(渲染器)中的material(材質)並改變其alpha值實現若隱若現的效果
sys [] object c engine orm 器) gpo gin nts using UnityEngine;using System.Collections;using UnityEngine.UI; public class CubeControl : Mo
逆序(n個數中m個逆序)
.com light ostream size 逆序對數 逆序對 std ios pac 逆序對數列 對於一個數列{ai},如果有i<j且ai>aj,那麽我們稱ai與aj為一對逆序對數。若對於任意一個由1~n自然數組成的 數列,可以很容易求出有多少個逆序對數
LeetCode 總結 (持續更新中。。。。)
總結 get ngs multiply log 。。 icu ble 更新 No. Name Acceptance Difficulty Star 43 Multiply Strings 27.3% medium 3.5 90 Subsets II 36.5%
oracle--導入數據(從excel中粘貼數據)
技術 ima KS 內容 添加 實際應用 http bubuko TE 如圖在要插入的內容前隨便添加一列非空的數據,選擇要粘貼的內容復制 在pl/sql 中 select xmmc,sqks from xm for update 像圖中步驟2 選中 然後
python 協程(單線程中的異步調用)(轉廖雪峰老師python教程)
層級 while 完全 多核 span lose produce 搶占 css 協程,又稱微線程,纖程。英文名Coroutine。 協程的概念很早就提出來了,但直到最近幾年才在某些語言(如Lua)中得到廣泛應用。 子程序,或者稱為函數,在所有語言中都是層級調用,比如A調用B
AndroidStudio Unknown attribute(在xml中沒有了程式碼提示)
問題 如上圖所示,編寫xml的時候提示:Unknown attribute in xml and Namespace not found 真的氣死人,升級到AndroidStudio3.2.1,sdk28以後問題成堆出現。 解決方案 下面是百度最多的兩個解決方案,然
組合語言入門(在debug中編輯和除錯程式)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
在64位的ubuntu 14.04 上開展32位Qt 程式開發環境配置(pro檔案中增加 QMAKE_CXXFLAGS += -m32 命令)
為了能中一個系統上開發64或32位C++程式,費了些周折,現在終於能夠開始幹過了。在此記錄此時針對Q5.4版本的32位開發環境配置過程。 1. 下載Qt 5.4 的32位版本,進行安裝,安裝過程中會發現一些32位的庫沒有安裝,根據提示的錯誤逐個安裝上即可。 2. 開啟一個SampleCode 中的cube
快速和改進的二維凸包演算法及其在O(n log h)中的實現(實現部分)
此篇接上一篇部落格http://blog.csdn.net/firstchange/article/details/78588669 實施選擇 陣列與列表 “List”類是一個C#集合,它使用一個數組作為其底層容器。使用“列表”而不是陣列應該有類似的效能。測試證實,
快速和改進的二維凸包演算法及其在O(n log h)中的實現(理論部分)
在國外某知名網站上瀏覽資訊時發現了一篇非常好的論文,因為是英文的,自己翻譯、整理了一下,如果想看原始的可以去以下連結:https://www.codeproject.com/Articles/1210225/Fast-and-improved-D-Convex-Hull-algorithm-
微信公眾號支付介面(vue專案中,兩種方法)
第一種:引入微信js-sdk //在一個地方呼叫this.weixin()方法,比如說按鈕 //寫微信支付方法 weixin() { var that = this; var url=''; var params = {
Lintcode 15.全排列 (遞迴中進行列表append操作)
描述 給定一個數字列表,返回其所有可能的排列。 你可以假設沒有重複數字。 樣例 給出一個列表[1,2,3],其全排列為: [ [1,2,3], [1,3,2], [2,1,3]
貝納利(Benelli )颶風302提車記(我人生中的第一輛摩托車)
http 下午 技術分享 祖國 17. 公園 上班 網絡 識別不了 貝納利(Benelli )颶風302提車記(我人生中的第一輛摩托車) 說起這次提車的心情得從一年前的考去駕駛證說起 1.駕駛證增駕 大飛哥的E本增駕考試經歷因為我是異地考取的駕駛證增駕需轉入本地 2
Java之物件的多型性(使用生活中通俗的例子講解)
Java之物件的多型性多型概念 (Java) 多型(英語:polymorphism),是指計算機程式執行時,相同的訊息可能會送給多個不同的類別之物件,而系統可依據物件所屬類別,引發對應類別的方法,而有不同的行為。簡單來說,所謂多型意指相同的訊息給予不同的物件會引發不同的
node express中使用static託管靜態檔案(訪問專案中的圖片或者檔案)
利用 Express 託管靜態檔案 通過 Express 內建的 express.static 可以方便地託管靜態檔案,例如圖片、CSS、JavaScript 檔案等。 將靜態資原始檔所在的目錄作為引數傳遞給 express.static 中介軟體就可以提供