最近因為一個案子需要和其他單位合作,
要從我所撰寫的 App 中某個按鍵開啟他們的網頁,
由於是網頁,就要在 Activity 中嵌入一個可以瀏灠網頁的 View
在 Android 上就是使用 WebView 這個類別, Library 在這個位置
2010年12月23日 星期四
2010年12月22日 星期三
獲得 Zune 相關資訊
前幾天送審 Windows Phone 時被退件,原因是我們的 App 在開啟後會播放背景歌曲,
而當在 Zune 播放背景歌曲時,我們再使用 MediaPlayer 播放歌曲就會很自然的將背景歌曲停止,
微軟的審核人員可能覺得這樣會讓用戶以為 Zune Crash 之類的,所以強制規定此項目
而當在 Zune 播放背景歌曲時,我們再使用 MediaPlayer 播放歌曲就會很自然的將背景歌曲停止,
微軟的審核人員可能覺得這樣會讓用戶以為 Zune Crash 之類的,所以強制規定此項目
2010年12月21日 星期二
Android Multi Thread 的簡單範例
撰寫 Desktop Software 時,不使用 Thread 可能會失去不少的靈活性與流暢感,
在 Android 中使用 Thread 的觀念與 C# 中的 BackgroundWorker 很像,
大致上就分成這四個成員
在 Android 中使用 Thread 的觀念與 C# 中的 BackgroundWorker 很像,
大致上就分成這四個成員
2010年12月13日 星期一
取得螢幕 DPI 設定值
在寫 Windows 視窗軟體時,顯示文字資訊有幾項方法,
第一就是使用控制項例如 Static Text、Edit Control 等顯示文字訊息,
另一種很常用的就是將文字利用 DC.DrawText() 等方式畫在視窗上。
第一就是使用控制項例如 Static Text、Edit Control 等顯示文字訊息,
另一種很常用的就是將文字利用 DC.DrawText() 等方式畫在視窗上。
2010年12月12日 星期日
2010年12月9日 星期四
2010年12月3日 星期五
Windows Phone 如何在 Screen Locked 環境運行
前幾天在開發中的 Windows Phone 專案上新增了一個功能,
大概就是啟動一個 Thread 定時檢查網路上的資訊,若雲端的檔案被更新就抓下來,
大概就是啟動一個 Thread 定時檢查網路上的資訊,若雲端的檔案被更新就抓下來,
2010年12月2日 星期四
2010年12月1日 星期三
如何獲得 Theme Property
Windows Phone 提供兩種背景風格讓用戶選擇,闇系與光系,
當然在調整了 Theme Background 後,預設的文字色彩也會變成該背景的對比色,
當然在調整了 Theme Background 後,預設的文字色彩也會變成該背景的對比色,
2010年11月30日 星期二
How to get App Version in WMAppManifest.xml
開發WP7軟體時,版號通常會統一管理在 WMAppManifest.xml 中,
而某些情況時常要讀出版號做某些判斷或秀在 "about" 之類的畫面上,
就目前知道的有三種方法可以取得 Version 此屬性值。
而某些情況時常要讀出版號做某些判斷或秀在 "about" 之類的畫面上,
就目前知道的有三種方法可以取得 Version 此屬性值。
2010年11月26日 星期五
IsolatedStorage
據說這是從 Silverlight 2.0 開始有的東東,
剛查到這個東西時感覺和 Android 的觀念很像,
只有建立它的那個App可以存取自己 Isolated Storage 裡的資料,
剛查到這個東西時感覺和 Android 的觀念很像,
只有建立它的那個App可以存取自己 Isolated Storage 裡的資料,
標籤:
silverlight,
windows phone
2010年11月14日 星期日
FindWindow 與 GetWindow
HWND WINAPI FindWindow(
__in_opt LPCTSTR lpClassName,
__in_opt LPCTSTR lpWindowName
);
這是一個 Windows API,用於找出某個視窗…
回傳值 HWND 為該視窗的 handle,若查無此視窗則回傳0
前幾天檢查 Code 發現自己用錯了,所以記一下…
2010年11月13日 星期六
2010年11月4日 星期四
htc Phone Hard Reset
有時手機不知怎麼的無法開機亦無法關機,拔電池重開一樣卡住…
在這種沒辦法做事的情況下只有做 Hard Reset 試試了…
在這種沒辦法做事的情況下只有做 Hard Reset 試試了…
標籤:
android,
windows phone
2010年11月2日 星期二
Windows Phone 加入 ApplicationBar
剛拿到 Windows Phone 時最不習慣的其實是其 Menu 的 Style
因為 Windows Phone 硬體往往只有三顆鍵
Back、Home、Bing Search
因為 Windows Phone 硬體往往只有三顆鍵
Back、Home、Bing Search
Windows Phone 用圖要領
開發 Windows Phone 7 專案往往必須改變軟體開啟時的 Splash 與 Logo
而更改 Splash、Logo、Background 的方式就是修改專案中附的這幾個檔案
而更改 Splash、Logo、Background 的方式就是修改專案中附的這幾個檔案
2010年11月1日 星期一
2010年10月30日 星期六
2010年10月19日 星期二
使用 alloca 或 malloc?
偶爾我們需要使用 malloc 或 realloc 來配置固定大小的記憶體空間,
使用上使用了這類指令,都要配上等量的 free() 或 delete 來釋放記憶體,
以免造成 memory leak 的狀況,當然也可以使用免 free() 的 alloca 指令。
使用上使用了這類指令,都要配上等量的 free() 或 delete 來釋放記憶體,
以免造成 memory leak 的狀況,當然也可以使用免 free() 的 alloca 指令。
2010年10月16日 星期六
Visual Studio 自動填入無作用與中斷點行數不一致的問題
在使用 Visual Studio 開發 C++ 專案時,有時寫了新類別時,
或是為了主專案的簡潔性而調整了檔案的位置至新開的專案時,
常常會造成自動填入功能失效,確定正確的類別,但按了 "." 或 "->" 卻沒東西跑出來,
當使用多個參數的 function 時少了自動填入的功能還頗令人苦惱,
或是為了主專案的簡潔性而調整了檔案的位置至新開的專案時,
常常會造成自動填入功能失效,確定正確的類別,但按了 "." 或 "->" 卻沒東西跑出來,
當使用多個參數的 function 時少了自動填入的功能還頗令人苦惱,
2010年10月13日 星期三
在 Android 使用 Timer
有時必須用到簡單的計時排程功能,
以下兩個小範例示範實作 1000 毫秒的 Timer,
兩種方式需注意一點,使用 Timer 方式雖然簡單,
但 TimerTask 是在 Background Thread 被呼叫,
所以無法在 TimerTask 中直接操作 UI Element,
必須委托 main thread 的 handler 協助,
以下兩個小範例示範實作 1000 毫秒的 Timer,
兩種方式需注意一點,使用 Timer 方式雖然簡單,
但 TimerTask 是在 Background Thread 被呼叫,
所以無法在 TimerTask 中直接操作 UI Element,
必須委托 main thread 的 handler 協助,
如何獲得 Android 裝置的電源管理資訊
若有需要,可以利用 android.os.BatteryManager 來獲得電源資訊,
方法和獲得連線、記憶卡資訊一樣,用收廣播的方式來獲得資訊,
以下是個小範例。
方法和獲得連線、記憶卡資訊一樣,用收廣播的方式來獲得資訊,
以下是個小範例。
2010年10月7日 星期四
為何 Windows Mobile 專案在 Visual Studio 下中斷點無反應
有時拿到新的 Windows Mobile 裝置時,
已經與 PC 做 ActiveSync 動作,部屬程式也可執行,
但下了某一行中斷點 (Break Point) 卻沒停在該停的地方,
已經與 PC 做 ActiveSync 動作,部屬程式也可執行,
但下了某一行中斷點 (Break Point) 卻沒停在該停的地方,
Eclipse 偵測不到 Android 裝置或找不到 xxx.apk 問題
有時拿到新的 Android 裝置時,Eclipse 會偵測不到 USB 上的裝置,
導致無法在實機上執行程式的情況,
大概比較一下 "已經能被 Eclipse 辨識的裝置" 和 "無法辨識到的裝置" 這兩者的設定
發現只要在主畫面按下 Menu 進到 Setting/Application/Development 裡面,
導致無法在實機上執行程式的情況,
大概比較一下 "已經能被 Eclipse 辨識的裝置" 和 "無法辨識到的裝置" 這兩者的設定
發現只要在主畫面按下 Menu 進到 Setting/Application/Development 裡面,
2010年10月4日 星期一
Windows Mobile 上部屬 dll 發生佔用的情況
在撰寫 Windows Mobile 的軟體時,
利用 Visual Studio 將專案部屬到機器上應該是必做的一件工作,
有時後我們會將特定的 class、function、resource 等做成額外的 dll
好讓我們能夠在不動到主程式的情況下做到快速加入新功能或換圖等需求。
利用 Visual Studio 將專案部屬到機器上應該是必做的一件工作,
有時後我們會將特定的 class、function、resource 等做成額外的 dll
好讓我們能夠在不動到主程式的情況下做到快速加入新功能或換圖等需求。
2010年10月2日 星期六
Android 上的 Permissions
在撰寫 Android App 時,時常需要調用一些平台上的資訊,
例如使用 TelephonyManager 查詢 IEMI CODE 等需求,
就以取得 IMEI 為例,在 Android 中是使用 getDeviceId() 這個 API
例如使用 TelephonyManager 查詢 IEMI CODE 等需求,
就以取得 IMEI 為例,在 Android 中是使用 getDeviceId() 這個 API
2010年10月1日 星期五
mouse leave 與 mouse event track
在 C++/MFC 中雖然有 MouseLeave 的事件可以選擇,
但選了卻沒有反應,原因是必須加上 Track 追蹤滑鼠,
以下是在 MFC 上實作 Mouse Leave 和 Mouse Over 的簡單範例。
但選了卻沒有反應,原因是必須加上 Track 追蹤滑鼠,
以下是在 MFC 上實作 Mouse Leave 和 Mouse Over 的簡單範例。
標籤:
cpp,
mfc,
windows api
2010年9月29日 星期三
2010年9月28日 星期二
如何獲得 GetLastError() 的文字訊息
在撰寫軟體時常常會接獲錯誤訊息,或在操作某些動作時發現錯誤,
也經常利用 ::GetLastError(); 這支 Windows API 來獲取錯誤代碼,
但是這支API回報的是 DWORD 型態,想知道得更詳細往往要再上網搜尋一番,
當然也有方法可以取得文字訊息,簡單的範例如下。
也經常利用 ::GetLastError(); 這支 Windows API 來獲取錯誤代碼,
但是這支API回報的是 DWORD 型態,想知道得更詳細往往要再上網搜尋一番,
當然也有方法可以取得文字訊息,簡單的範例如下。
標籤:
cpp,
mfc,
windows api
利用 memory dc 解決畫面閃爍問題
重繪時要避免畫面閃爍可以使用 Invalidate(FALSE);
使重繪時不做清除底圖的動作,減少閃爍的情況,
使重繪時不做清除底圖的動作,減少閃爍的情況,
標籤:
cpp,
mfc,
windows api
2010年9月27日 星期一
利用 SetWindowRgn 製作非矩型視窗
在 XP 預設的外觀樣式下,正常的視窗或對話框是上方頂點圓圓的配下方直角,
若有需要做出非預設樣式的視窗時,可以利用 CWnd::SetWindowRgn() 這個 function
這可以用來指定視窗的全部範圍與型狀,
在型狀之外的部份會自動為我們加上背景的遮罩。
若有需要做出非預設樣式的視窗時,可以利用 CWnd::SetWindowRgn() 這個 function
這可以用來指定視窗的全部範圍與型狀,
在型狀之外的部份會自動為我們加上背景的遮罩。
標籤:
cpp,
mfc,
windows api
client area 與 WM_NCHITTEST
在 MFC 中若要製作不同於 Windows 風格的視窗時,
往往會將 Dialog 的 Border 屬性設為 None,
然後利用自己畫背景的方式製作美美的視窗、對話框。
往往會將 Dialog 的 Border 屬性設為 None,
然後利用自己畫背景的方式製作美美的視窗、對話框。
標籤:
cpp,
mfc,
windows api
2010年9月24日 星期五
使用 ISAXContentHandler 解讀 XML 的注意事項
在 C++ 底下要解讀 XML 檔案常用的有兩個方法,一是使用 IE6 就有附加的 CLSID_DOMDocument30 元件,二是使用較底層的 Windows API ISAXContentHandler,兩都都需要 include msxml2.h 檔案
標籤:
cpp,
mfc,
windows api
2010年9月23日 星期四
Java 的 method 參數
最早之前工作是寫 C# 與 VB.Net,後來轉寫 C++ 以後很習慣清楚的標示 function 參數是傳值、傳址或傳參考,最近寫起 Java 發現 Java 和 C# 對於 method 參數是傳值還是傳參考是差不多的觀念,參數簡單的分為兩類
2010年9月17日 星期五
2010年9月16日 星期四
Android Activity 的啟動與結束
撰寫 Android 專案時發生一些在離開應用程式時 crash 的狀況,反覆檢查 Activity 的 onDestroy() 就是看不出什麼異樣,後來 TRACE 才發現問題出在 onPause() 裡面的一行 code,在此筆記一下 Activity 啟動與結束的流程
2010年9月12日 星期日
2010年9月11日 星期六
vector 內要放值還是放址?
vector 是 STL 其中之一非常好用的容器,用來替代1維的陣列管理物件是很常用的寫法,有一陣子我在看公司前輩寫的 code 發現一個怪怪的地方,那是一個跑在 Windows Mobile 平台的軟體,裡面有一些大概就是這樣子的一段 code
2010年9月10日 星期五
2010年9月9日 星期四
軟體缺少 d3dx9_xx.dll 的問題
DirectX 在版本轉換時真的是個麻煩的東西,曾經發生一個狀況,將原本正常的專案由 VS2003 轉至 2008 以後,原本利用 VS2003 包出來正常的檔案,改用 VS2008 編以後自已用起來正常,給其他人用卻出問題,在其他台執行時跳出缺少 d3dx9_41.dll 的錯誤。
標籤:
direct x,
visual studio
2010年9月7日 星期二
2010年9月6日 星期一
2010年8月30日 星期一
pure virtual function 與 abstract base class
有些時後會發生一種情況,我們必須創立許多類似的類別,而這些類別必須有某些相同且必要的條件,同樣以遊戲為例,例如資深工程師制訂了 NPC 的規格,各工程師照著規格實作遊戲企劃人員構想的各種 NPC 這種情況可以用到 virtual function 來解決各衍生類別的同名異式,但無法要求衍生類別一定要實作某些類別的內容,這時可以利用 "pure virtual function(純虛擬函式)" 例如:
2010年8月25日 星期三
polymorphic 與 virtual關鍵字
物件導向設計中有一項精華就是 polymorphic(同名異式),以 MFC 為例,每個元件其實最底層都是 CWnd (視窗),CButton 與 CEdit都繼承了 CWnd,兩都也都有 SetWindowText(),但 CButton 會顯示在按鍵的中間,CEdit 會顯示在框框中,這就是 polymorphic 的表現。
2010年8月20日 星期五
類別的靜態成員與自建簡易函式庫
有時後我們常常會寫一些 function,這些 function 在寫不同專案時常常要 copy 過去,若這些 function 與流程無關,或是可以把相關的值提取出來做為參數,那何不設計成一個自己使用的程式庫類別咧,
template 樣板函式
若我們要寫一個交換兩個值的 function,可能吃整數、浮點數、字串、該怎麼辦呢?最簡單的方法就是用 overloading 寫好幾個,另一種方法就是寫樣板函式請前置處理器幫忙。
2010年8月19日 星期四
operator overloading
operator 即是運算子,在利用 C++ 編寫程式時,operator overloading 是很常用到的,例如果我們自己實作了一個類別,一個漂亮的 ComboBox,我們可以在這個 CComboBox 中加入一條函式
const 與 volatile 修飾字
const 即是常數,即是宣當時賦值後只能讀取,無法改寫的數,很多初學者只知道這可以宣告無法改變的變數,但又莫名奇妙不知道實質的意義,不要改變這種事不就自己知道就好了嗎?為什麼要刻意在前面加上 const 來修飾呢?小的之前的想法就是這樣,讀的書多了才發現真正的用處在哪。
2010年8月18日 星期三
CString.ReverseFind() 與 Find() 的區別
CString 類別中有一些好用的 Method,有一個名為 Find() 的 Method 即是其中一個,此函式會回傳找到參數的索引位置,索引以 0 開始計算,若沒找到就會回傳 -1
利用 Event 定時處理某些事情
在軟體流程中,常常需要在固定一段時間後去做某件事,例如股市看盤軟體,每1分鐘要更新一次走勢圖,包括交易量、成交金額等資訊,初心者經常會使用 SetTimer() 來做這種事,但 SetTimer 這種事只存在於視窗中,例如 CWnd、CDialog 等等視窗。
標籤:
cpp,
mfc,
windows api
2010年8月17日 星期二
Thread 常用的同步方式
有時後我們會使用 Thread 來在背景做一些事,僅僅是為了不讓畫面被 main thread 卡住,若我們需要等待 thread 做完事才處理接下來的動作,可以使用以下 Windows API
標籤:
cpp,
mfc,
windows api
Multi Thread 下的 function 設計條件
在開發 Multi Thread 的軟體時,所有可能被 Thread 呼叫的 function 都要盡量設計成 Reentrant,這可以提供最安全的執行環境與結果。
專案轉換常發生的 qedit.h 編譯問題
有時新的 IDE 工具上市時,為了配合某些流程,必須將舊的開發環境轉至新的開發環境,又或網路上下載了 VS2003 的範例,苦於自己只有 VS2005 而必須轉換,這種狀況就常常遇到一些前置處理器與編譯的惱人錯誤…
使用 DXSDK 發生的 __ptr64 編譯問題
有時後編譯 DirectShow Sample 中的 BaseClasses 時會出現__ptr64相關的錯誤訊息,使用此 Project 有兩種方式,第一是直接 Include 完整的 Sample 目錄,例如 C:\DXSDK\Samples\C++\DirectShow\BaseClasses
標籤:
direct x,
visual studio
2010年8月16日 星期一
Multi Thread 常用的安全控制
Thread 有至少 3 種狀態供我們利用,分別為
1. Running - 正在佔用CPU執行中
2. Ready - 可立即執行的狀態,但CPU仍被佔用
3. Waiting - 等待事件
1. Running - 正在佔用CPU執行中
2. Ready - 可立即執行的狀態,但CPU仍被佔用
3. Waiting - 等待事件
標籤:
cpp,
mfc,
windows api
2010年8月15日 星期日
學習中…
只是拿來做一些個人筆記…好讓自己在各處都可以查到曾經整理過的資料…若您正好需要這裡的某些資料…註明出處後就直接取走吧…
筆記內容大部份都是關於寫作客戶端程式的一些經驗或其他地方看到的知識…內容不一定是完全正確的…而是我所理解的認知…若發現有誤請您指教…小的會非常感激…
筆記內容大部份都是關於寫作客戶端程式的一些經驗或其他地方看到的知識…內容不一定是完全正確的…而是我所理解的認知…若發現有誤請您指教…小的會非常感激…
訂閱:
文章 (Atom)