軟體設計深度挖掘(二)(僅針對windows平臺)實現雜談篇 (轉)

gugu99發表於2008-07-23
軟體設計深度挖掘(二)(僅針對windows平臺)實現雜談篇 (轉)[@more@]

設計深度挖掘(二)(僅針對平臺)實現雜談篇

  既然叫設計當然我們不能撇開它的可實現性了,上一節我說過,具體的
分析員應該具備的知識應該是錯綜百代,廣博精微的!如果說軟體的設計是
的積累,那麼這些技術實現就是其中最重要的一環,因為對於我們來講,技術的
遠遠超過了設計思想的更新。我們不能置基礎而不顧,設計空中樓閣。下面
我們就講一講這些放面的涉及範圍和解決方法。裡面可能不是最優但我想足以拋
磚引玉了。
  現在圍繞在我們面前的技術問題很多,很雜。不像10年前那麼單純,實現一個
問題的途徑一般只有一兩種,現在的解決方法真是層出不窮,黑白道的方法都有了。
每次出現一個新版本的東西就要學很久,現在我們應該看清楚了,我們不可能永遠
走在浪尖,我們不能靠身體和知識搏鬥了,要靠思想。msdn有誰看完了呢,沒有!
有誰編寫過300萬行程式碼,也是沒有,你不可能來實踐所有的想法,因為你沒有時間。
你只能針對某一個問題進行研究,就象愛因斯坦不會做餃子一樣,我們都有各自的
領域。有時我們會發現某個人懂得真多,大家別信,大部分是想法,不是實踐。系統
分析員要求就是想法的正確率要非常高了而已。因此這才是真正的經驗,這個經驗
有可能完成一項創舉,也有可能埋葬一個工程。下面就我的經驗來談談windows
下的各種技術實現方法。

  首先給大家一個例子:它完成的功能是將windows計算器的選單變成記事本的
選單:
  HWND hWndC;
 HWND hWndE;
 HMENU hMenu;
 hWndC = ::FindWindow("SciCalc",NULL);
 hWndE = ::FindWindow("Notepad",NULL);
 hMenu = ::GetMenu(hWndE);
 ::SetMenu(hWndC,hMenu);
將這段程式碼加入你的,一個按鈕,或者選單中,將計算器和記事本開啟(notepad)
就可以允許看效果了。這個原理可以用來動態改變選單,插入,刪除,修改視窗和選單的,也就是完全控制一個視窗是非常簡單的,哈哈不信,試試啊!
  選單變化後不能響應事件了對吧,那時ID號不對了嘛,這裡僅僅做個示範,後面會詳細解釋的。從這個例子你應該可以理解到window的東西都是相通的,有很多原來認為很複雜的東西其實是非常簡單的,只是我們的經驗不足而已。不相信嗎?那麼我們再作個試驗:如果你正確了8.0 SDK的話將下面編譯成。(控制檯工程)
#include
void main(void)
{  //下面兩個東西一個是建立圖形用的類,一個是控制等操作的類(是介面)
  IGraphBuilder *pGraph;
  IMediaControl *pMediaControl;
  //下面這個一定要有了,就是說我的程式裡面要用com的意思
  CoInitialize(NULL);
 
  // 找那個可以用的名稱(就是介面)
  CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
  IID_IGraphBuilder, (void **)&pGraph);
  pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
 

  // 下面的東西是播放函式了,其中"C:Example.avi"可以自己更改的
  // 這個東西可以播放很多東西,不只是avi,不信試試,什麼影像,什麼視
  // 頻都可以(誇張了一點)
  pGraph->RenderFile(L"C:Example.avi", NULL);
  pMediaControl->Run();
  // 清楚原來使用的那個函式佔用的了
  pMediaControl->Release();
  pGraph->Release();
  //告訴windows我們不用com元件了
  CoUninitialize();
}
  這個例子我們能體會到些什麼了吧,什麼顯示jpg,顯示mpeg了等等,我們有這麼
簡單的辦法,很不錯吧!
  再隨便講一個多顯示器的東西,對於初學著來說好像很難啊,其實呢,
HMONITOR MonitorFromWindow( HWND hwnd, D dwFlags);
這個函式就搞定了,編寫多顯示器的函式一共才6個,一個回撥,一個列舉,一個info,下面就全是MonitorFrom×××了,覺得不可思議了吧!就這麼簡單.

  其實這些都是快餐,什麼意思呢?別人沒有涉及到這個領域就不會清楚裡面的難易
程度,說一兩句就明白了,這種辦法很多也是靠經驗的積累,但這種辦法對於系統分析員來講是有點花拳繡腿了。

我們後面將會步入正題,進行我們的開發之路。比如影片,什麼語音通訊中心,vod,流的開發等等了,我會一一講解。

 
 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1007723/,如需轉載,請註明出處,否則將追究法律責任。

相關文章