如何在乙個全域性函式中獲得DOC指標

2021-04-29 17:08:29 字數 1275 閱讀 6919

我的情況是就差最後一點完成我的設計。我主要是遇到一點問題。就是如何在乙個全域性函式中,獲得它文件類(或者是檢視類)的指標啊?這個是我的現在的問題。

我在網上找到了乙個帖子。看是看了。可是看了不是很懂。

現在我遇見的情況就是和這個帖子的情況是一樣的。可能是在乙個全域性函式中,獲得它doc類的指標。

如在單文件中,在任何物件中怎麼得到指向該cmydoc的指標?http://topic.csdn.net/t/20020423/17/670401.html

和這個帖子也差不多。搞不明白這個**。

用這個能獲得當前檢視類afxgetactiveview

((cframewnd  *)afxgetmainwnd())->getactivedocument();

if(!m_pdoctemp)

if(m_m_pdoctem)

} }

為什麼要這麼做?這麼做是違反oop規範的

你可以讓函式的呼叫者把文件指標傳給你,或者用訂閱者模式通知指定的文件進行操作

我一般都這麼獲取

cyourdoc* pdoc = (cyourdoc*)((cmainframe*)afxgetmainwnd())->getactiveview()->getdocument();

請問jiangsheng:

用訂閱者模式通知指定的文件進行操作具體怎麼實現?我初學vc,不知什麼是訂閱者模式。

你的專案是多文件架構,不能按單文件的方法來處理。

cframewnd* mainframe = (cframewnd*)afxgetmainwnd(); // 得到主框架指標

cframewnd* childframe = mainframe->getactiveframe(); // 得到當前活動的子框架指標

cview* view = childframe->getactiveview(); // 得到當前活動檢視指標

cdocument* doc = view->getdocument(); // 得到當前活動文件指標

可以將以上指標強制轉換為你自己程式中定義的框加類、文件類、檢視類指標型別來使用,要注意各個函式呼叫返回的指標有可能為null(如果不存在活動的)。

對全域性函式呼叫doc指標的設計,不太好。破壞了oo的基本要求。

cdocument* doc = view->getdocument(); // 得到當前活動文件指標

然後,就可以操作了。

非同步執行如何在乙個函式中實現

前言 非同步執行經常要用到2個函式,乙個函式處理ui執行緒的呼叫,另外乙個函式處理核心執行緒呼叫。並且中間要用很多命令來轉接不同的函式。這樣函式的 量和處理要麻煩很多。可以用模板函式做一下轉接。模板函式如下 用到的函式打包知 std bind與std function詳解 pragma once i...

如何在shell內部定義乙個函式

定義函式 函式名 呼叫函式 函式名傳參函式格式 傳引數 函式名 引數函式體呼叫引數 函式名 注意 類似於shell內建變數中的位置引數 簡單函式定義和呼叫示例 bin bash 函式使用場景一 執行頻繁的命令 dayin dayin函式傳參和函式體內呼叫引數示例 bin bash 函式的使用場景二 ...

如何在 Linux 中查詢乙個檔案

對於新手而言,在 linux 中使用命令列可能會非常不方便。沒有圖形介面,很難在不同資料夾間瀏覽,找到需要的檔案。本篇教程中,我會展示如何在 linux 中查詢特定的檔案。第一步要做的是通過 ssh 連線到你的 linux 在 linux 中查詢檔案有兩種方法。一種是使用find命令,另外一種是使用...