討論區快速選單
知識庫快速選單
想要資料分析就學Python 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
如何利用VC++自行設計UI控制項!?
更改我的閱讀文章字型大小
作者 : mkore8123(凱洛德)
[ 貼文 4 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/17 下午 12:28:06
各位前輩好,小弟我有些許Windows API及MFC的實作經驗,最近在利用MFC做視窗程式設計時遇到的疑問;



問題一:要如何利用VC++自行設計像.Net提供的UI控制項?

是否是用ActiveX還是其他方案?(對ActiveX的實際功用不甚了解)
如牽涉到「控制項」或是「表單」外觀設計也是否利用GDI、GDI+等繪圖功能來手動完成?



問題二:小弟目前對於ActiveX的認知是好像可在單機及網頁上執行,但對於ATL、COM、ActiveX這三者還不是很了解,

目前只知道:ATL用於開發COM和ActiveX,ActiveX是COM的演進。(有錯誤請指證)
但如前述所說不了解何謂ActiveX,故也不太懂COM本身在程式設計上的實際意義,懇請推薦有關ATL、COM、ActiveX書籍。(希望是中文且發行日期越後面越好)


因在看其他介紹文獻時總是又牽扯到其他專業方面的術語,故還是無法參透箇中意義...希望能先用白話從最明顯功用和差異到內部程式實現細節解說,非常感謝!
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4466 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/18 上午 09:11:07
http://www.360doc.com/content/11/0703/15/3984664_131239668.shtml
http://en.wikipedia.org/wiki/Active_Template_Library
http://msdn.microsoft.com/zh-tw/library/x1c35cc3(v=vs.80).aspx
http://blog.yam.com/jingshun/article/29115351
http://blog.csdn.net/yanghao58686763/article/details/2192578
http://baike.baidu.com/view/370167.htm
http://msdn.microsoft.com/en-us/library/599w5e7x(v=vs.71).aspx
http://mqjing.blogspot.tw/2008/11/c-activex-method.html
http://zh.wikipedia.org/zh-tw/ActiveX
http://www.ehow.com/how_6908197_learn-activex-programming.html


others about COM , ActiveX and ATL , please search their keywords via google .
作者 : chiuinan2(青衫)討論區板主 Visual C++ .NET卓越專家VC++一代宗師Visual Basic優秀好手資訊類作業求救卓越專家一般曠世奇才程式設計甘苦談優秀好手C++ Builder優秀好手上班族的哈拉園地優秀好手C++頂尖高手Assembly優秀好手貼文超過3000則人氣指數超過150000點
[ 貼文 3732 | 人氣 170106 | 評價 34520 | 評價/貼文 9.25 | 送出評價 125 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/18 下午 04:31:11
OLE技術(Object Linking and Embedding,物件連結與嵌入),為微軟1990年所提出,最初係為改良DDE(Dynamic Data Exchange,動態資料交換)所設,以便提供複合文件,亦即文件中可嵌入其他文件。在OLE 1.0版時,係利用VTBL(Virtual Function Table,虛擬函數表),做為兩文件之間的溝通界面。

1993年,微軟提出COM架構(Component Object Model,元件物件模式),做為元件間溝通的界面,並改變OLE技術,以基植於此一架構上,稱為OLE 2.0版。這個COM架構,便是目前所有COM元件的基礎。所有的界面均從IUnkown開始,利用IUnkown::QueryInterface查找該元件有支援的界面並加以運用。當時要實作OLE元件,都必須使用C++透過ATL(Active Template Library)來撰寫,過程相當繁複。且在撰寫前,多半必須研讀”Inside OLE 2.0” 這本書半年或一年以上,才算稍有基礎,使得大部份的程式設計師都視撰寫OLE元件為畏途。

OCX控制項(OLE custom control),係1994年VB 4.0版時所提出,以取代早期VBX控制項(Visual Basic Extension control)。它是基植於OLE 2.0的界面,再加上新提出的界面,以便與使用者進行互動。就如同它的名字,作用起來就是一個控制項,簡單可像是一個按鈕或Edit Box,複雜也可以像是一個檔案總管。

由於OLE 2.0的界面種類與交互關係過份複雜,同時又想解決OCX控制項只能用VB設計的問題,微軟於1996年開始進行必要界面的重新界定,並提出自動化技術(Automation),以解決跨程式語言的問題,然後將整個封裝技術定名為ActiveX技術,於是OCX控制項也跟著改稱為ActiveX控制項。同年IE開始在網頁中支援ActiveX控制項,以便與使用者進行顯示與互動控制,這項變革大幅提高ActiveX控制項的實用性。像現今的Adobe Flash Player,便是一個相當常見的ActiveX控制項。之後VC++開始支援ActiveX技術,將大部份的實作細節加以封裝、自動處理,於是撰寫COM元件與ActiveX控制項變得相當簡便,不必再像以前那麼地辛苦。

所謂Automation技術,便是IDispatch界面的支援。目前用VC++開COM元件的Project,內定都有支援這個界面。只要有這個界面,VB或ASP,甚至.NET都可以直接引用並呼叫元件內的函數,存取元件內的屬性。凡是不支援IDispatch界面的COM元件,則稱為純COM元件,只能被C++所引用,因此目前已很少再見到這類型的COM元件了。
作者 : mkore8123(凱洛德)
[ 貼文 4 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/18 下午 05:24:06
>OCX控制項(OLE custom control),係1994年VB 4.0版時所提出,以取代早期VBX控制項(Visual Basic Extension control)。它是基植於OLE 2.0的界面,再加上新提出的界面,以便與使用者進行互動。就如同它的名字,作用起來就是一個控制項,簡單可像是一個按鈕或Edit Box,複雜也可以像是一個檔案總管。
>
>由於OLE 2.0的界面種類與交互關係過份複雜,同時又想解決OCX控制項只能用VB設計的問題,微軟於1996年開始進行必要界面的重新界定,並提出自動化技術(Automation),以解決跨程式語言的問題,然後將整個封裝技術定名為ActiveX技術,於是OCX控制項也跟著改稱為ActiveX控制項。同年IE開始在網頁中支援ActiveX控制項,以便與使用者進行顯示與互動控制,這項變革大幅提高ActiveX控制項的實用性。像現今的Adobe Flash Player,便是一個相當常見的ActiveX控制項。之後VC++開始支援ActiveX技術,將大部份的實作細節加以封裝、自動處理,於是撰寫COM元件與ActiveX控制項變得相當簡便,不必再像以前那麼地辛苦。
>
>所謂Automation技術,便是IDispatch界面的支援。目前用VC++開COM元件的Project,內定都有支援這個界面。只要有這個界面,VB或ASP,甚至.NET都可以直接引用並呼叫元件內的函數,存取元件內的屬性。凡是不支援IDispatch界面的COM元件,則稱為純COM元件,只能被C++所引用,因此目前已很少再見到這類型的COM元件了。
>

所以設計ActiveX就可以自行設計UI控制項?
而ActiveX就是OCX控制項在加上Automation技術是吧?(網頁語言或其他.Net程式語言使用)。

想請問有沒有推薦有關ATL和WTL開發設計的書籍或網站?越詳細越好,非常感謝!
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4466 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/18 下午 05:59:23
http://www.amazon.com/dp/0321159624/?tag=stackoverfl08-20
http://programmerworld.netfirms.com/techbooks/visual_c%2B%2B.htm
http://www.codeproject.com/kb/wtl/
http://www.codeproject.com/Articles/3841/WTL-for-MFC-Programmers-Part-I-ATL-GUI-Classes
http://www.gamedev.net/page/resources/_/technical/general-programming/using-the-windows-template-library-part-1-gett-r2042
http://www.viksoe.dk/code/wtldoc.htm , wtl doc
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4466 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/18 下午 08:30:38
http://www.yakergong.net/wtl/
SC version
作者 : mkore8123(凱洛德)
[ 貼文 4 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/19 下午 05:24:21
根據目前研究發現,在VS2010可以用「Windows Form控制項程式庫」設計,但到VS2012好像改用CLR的"類別庫"開發!?

(有錯麻煩請指證)

但據MSDN說會有出現.Net提供的工具箱類別庫,但我開後卻沒出現...
後來發現應該是要透過新增項目來新增「CLR使用者控制項」才能繼續開發。(繼續研究中)

到頭來還是要用微軟的.Net類庫進行開發@@",麻煩的是要學C++/CLI幾乎是重學另外1種語言。

各位前輩有什麼經驗可以分享嗎?
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4466 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/2/19 下午 05:38:45
http://www.ecma-international.org/publications/standards/Ecma-372.htm
http://www.codeproject.com/Articles/19354/Quick-C-CLI-Learn-C-CLI-in-less-than-10-minutes
http://blog.csdn.net/myan/article/details/134978
 板主 : 徵求中
 > Visual C++ .NET - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Visual C++ .NET - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Visual C++ .NET
1 青衫 2220 
2 Raymond 1500 
3 joe 520 
4 冷眼 350 
5 CodeWarrior 260 
6 marlon 230 
7 小朱 210 
8 windblown 200 
9 XWLin 120 
10 小約翰 120 
Visual C++ .NET
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875