今天騎車上班的時候,擤鼻涕竟然擤出一堆血,雖然流點血促進新陳代謝是很不錯,但也嚇了自己一大跳。
不過此時我想卻起了小時候看過兩部的片子,一陣旋律馬上在我心中迴響著...
「讓青春吹動了你的長發讓它牽引你的夢,
不知不覺這紅塵的歷史已記取了你的笑容。
紅紅心中藍藍的天是個生命的開始,
春雨不眠隔夜的你曾空獨眠的日子...」
我印象中是再見阿郎的電影主題曲,那是好小的時候看的電影了,周潤發主演,主要的印象就停在電影的最後,周潤發要去賽車,發生了意外。總覺得這部片實在是看了很可憐,想到都要流眼淚了...
到了公司,馬上上youtube找了相關資料來看... 才發現 我記錯了!? 再見阿郎的主題曲是另一首也是由羅大佑老師寫的歌「你的樣子」,一樣是一首非常經典的歌曲。
光聽歌 我就快哭了,再想到電影,真是夠了...
其實早上的情況應該是像我想到的另一部電影由劉德華演的天若有情一樣
是這首歌沒錯!!! 不過找不到國語版的歌..
達叔:「我殺了喇叭了...」 XD
最慘的就是吳倩蓮... 到最後還在高速公路上跑...
結論..
早期的電影都很灑狗血,看了不哭好像不是人!!
2008年5月1日 星期四
值得寫一篇網誌來紀念的一天
今天是值得紀念的一天, 因此我決定寫一篇網誌!!
一早手機鬧鐘依舊逼逼逼的吵著叫我起床,
今天也是一樣晃神的把出門前的準備工作做完就出門了.
今天的台北橋看起來真是乾淨, 沒有密密麻麻的車陣, 不知道那些車都去哪了??
因為沒有塞車, 今天異常的早到公司, 心血來潮走去買了麥當勞, 想不到麥當勞人還真多啊!?
走到公司樓下, 可能因為勞工節的關係, 某些門還沒開, 只好繞到另一邊...
結果8:25到公司, 門竟然沒開... 像流浪漢一樣地攤坐在門口... 等了一會才等到同事來開門..
只想說今天真鳥 = =
msn上的人數也是極少... 只好跟一些今天會上線的朋友, 一起抱怨一下這個值得紀念的鳥日子..
一早手機鬧鐘依舊逼逼逼的吵著叫我起床,
今天也是一樣晃神的把出門前的準備工作做完就出門了.
今天的台北橋看起來真是乾淨, 沒有密密麻麻的車陣, 不知道那些車都去哪了??
因為沒有塞車, 今天異常的早到公司, 心血來潮走去買了麥當勞, 想不到麥當勞人還真多啊!?
走到公司樓下, 可能因為勞工節的關係, 某些門還沒開, 只好繞到另一邊...
結果8:25到公司, 門竟然沒開... 像流浪漢一樣地攤坐在門口... 等了一會才等到同事來開門..
只想說今天真鳥 = =
msn上的人數也是極少... 只好跟一些今天會上線的朋友, 一起抱怨一下這個值得紀念的鳥日子..
2008年4月10日 星期四
HTML VIEW學習筆記
要在建立html view, 一定要include htmlctrl.h 及 htmlview.lib
//Handle to HTML view control
HWND m_hwndHtml;
HINSTANCE m_HtmlViewInstance;
初始化:
if (m_HtmlViewInstance == 0) {
m_HtmlViewInstance = ::LoadLibrary(L"htmlview.dll");
}
else
return FALSE;
VERIFY(InitHTMLControl(m_HtmlViewInstance));
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS|WS_BORDER;
RECT rect;
GetClientRect(GetForegroundWindow(), &rect);
m_hwndHtml = CreateWindow (DISPLAYCLASS,
NULL,
dwStyle,
rect.left,
rect.top,
rect.right,
rect.bottom,
hWnd,
0,
m_HtmlViewInstance,
NULL);
if( !m_hwndHtml)
return FALSE;
SetWindowLong(m_hwndHtml, GWL_ID, 77777);
SetFocus (m_hwndHtml);
SendMessage(m_hwndHtml, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)_T(""));
wchar_t None[1024];
LoadString(g_hInst,IDS_HTMLTEXT,None,1024);
SetHtml(None);
=============================================================
void SetHtml(wchar_t *strHtml)
{
SendMessage(m_hwndHtml, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)_T(""));
SendMessage(m_hwndHtml, DTM_ADDTEXTW, FALSE, (LPARAM)(LPCTSTR)strHtml);
SendMessage(m_hwndHtml, DTM_ENDOFSOURCE, 0, 0);
}
==============================================================
接著, 在訊息迴圈中 handle WM_NOTIFY 處理相關的動作。
case WM_NOTIFY:
{
NM_HTMLVIEW * pnmHTML = (NM_HTMLVIEW *) lParam;
LPNMHDR pnmh = (LPNMHDR) &(pnmHTML->hdr);
INLINEIMAGEINFO InlineImageInfo;
//DWORD dwCookieValue;
//LPSTR szSRCText;
HBITMAP hBitmap;
//NMHDR * pnmh = (NMHDR *)lParam;
switch (pnmh->code)
{
case NM_HOTSPOT:
{
OnLink(pnmHTML->szTarget);
//OutputDebugString(TEXT("NM_HOTSPOT\r\n"));
break;
}
case NM_INLINE_IMAGE:
{
if( 0==wcscmp( pnmHTML->szTarget,(LPCWSTR)L"rose")){
hBitmap = LoadBitmap( g_hInst, MAKEINTRESOURCE(IDB_BITMAP1));
}else if( 0==wcscmp(pnmHTML->szTarget ,(LPCWSTR)L"phone")){
hBitmap = LoadBitmap( g_hInst, MAKEINTRESOURCE(IDB_BITMAP2));
}else{
hBitmap = LoadBitmap( g_hInst, MAKEINTRESOURCE(IDB_BITMAP3));
}
BITMAP bmp;
GetObject(hBitmap, sizeof(BITMAP), &bmp);
InlineImageInfo.dwCookie = pnmHTML->dwCookie;
InlineImageInfo.iOrigHeight = bmp.bmHeight;
InlineImageInfo.iOrigWidth = bmp.bmWidth;
InlineImageInfo.hbm = hBitmap;
InlineImageInfo.bOwnBitmap = FALSE;
SendMessage(m_hwndHtml,DTM_SETIMAGE,0,(LPARAM)&InlineImageInfo);
OutputDebugString(TEXT("NM_INLINE_IMAGE\r\n"));
return 1;
/*If you are handling image processing yourself for the
HTML Control, you must return a non-zero value from
NM_INLINE_IMAGE. Otherwise the HTMLControl will attempt
to load the images on it's own, which will override the
results from your NM_INLINE_IMAGE processing code.*/
break;
}
case NM_INLINE_SOUND:
{
OutputDebugString(TEXT("NM_INLINE_SOUND\r\n"));
break;
}
case NM_TITLE:
{
OutputDebugString(TEXT("NM_TITLE\r\n"));
break;
}
case NM_META:
{
OutputDebugString(TEXT("NM_META\r\n"));
break;
}
case NM_BASE:
{
OutputDebugString(TEXT("NM_BASE\r\n"));
break;
}
case NM_CONTEXTMENU:
{
OutputDebugString(TEXT("NM_CONTEXTMENU\r\n"));
break;
}
case NM_INLINE_XML:
{
OutputDebugString(TEXT("NM_INLINE_XML\r\n"));
break;
}
case NM_BEFORENAVIGATE:
{
OutputDebugString(TEXT("NM_BEFORENAVIGATE\r\n"));
break;
}
case NM_DOCUMENTCOMPLETE:
{
OutputDebugString(TEXT("NM_DOCUMENTCOMPLETE\r\n"));
break;
}
case NM_NAVIGATECOMPLETE:
{
OutputDebugString(TEXT("NM_NAVIGATECOMPLETE\r\n"));
break;
}
case NM_TITLECHANGE:
{
OutputDebugString(TEXT("NM_TITLECHANGE\r\n"));
break;
}
default:
{
ASSERT(FALSE);
break;
}
}//switch
DeleteObject(hBitmap);
break;
}
===========================================================
處理NM_INLINE_IMAGE時, 切記要return 一個非零的值, 否則圖片會一閃即逝!!
//Handle to HTML view control
HWND m_hwndHtml;
HINSTANCE m_HtmlViewInstance;
初始化:
if (m_HtmlViewInstance == 0) {
m_HtmlViewInstance = ::LoadLibrary(L"htmlview.dll");
}
else
return FALSE;
VERIFY(InitHTMLControl(m_HtmlViewInstance));
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS|WS_BORDER;
RECT rect;
GetClientRect(GetForegroundWindow(), &rect);
m_hwndHtml = CreateWindow (DISPLAYCLASS,
NULL,
dwStyle,
rect.left,
rect.top,
rect.right,
rect.bottom,
hWnd,
0,
m_HtmlViewInstance,
NULL);
if( !m_hwndHtml)
return FALSE;
SetWindowLong(m_hwndHtml, GWL_ID, 77777);
SetFocus (m_hwndHtml);
SendMessage(m_hwndHtml, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)_T(""));
wchar_t None[1024];
LoadString(g_hInst,IDS_HTMLTEXT,None,1024);
SetHtml(None);
=============================================================
void SetHtml(wchar_t *strHtml)
{
SendMessage(m_hwndHtml, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)_T(""));
SendMessage(m_hwndHtml, DTM_ADDTEXTW, FALSE, (LPARAM)(LPCTSTR)strHtml);
SendMessage(m_hwndHtml, DTM_ENDOFSOURCE, 0, 0);
}
==============================================================
接著, 在訊息迴圈中 handle WM_NOTIFY 處理相關的動作。
case WM_NOTIFY:
{
NM_HTMLVIEW * pnmHTML = (NM_HTMLVIEW *) lParam;
LPNMHDR pnmh = (LPNMHDR) &(pnmHTML->hdr);
INLINEIMAGEINFO InlineImageInfo;
//DWORD dwCookieValue;
//LPSTR szSRCText;
HBITMAP hBitmap;
//NMHDR * pnmh = (NMHDR *)lParam;
switch (pnmh->code)
{
case NM_HOTSPOT:
{
OnLink(pnmHTML->szTarget);
//OutputDebugString(TEXT("NM_HOTSPOT\r\n"));
break;
}
case NM_INLINE_IMAGE:
{
if( 0==wcscmp( pnmHTML->szTarget,(LPCWSTR)L"rose")){
hBitmap = LoadBitmap( g_hInst, MAKEINTRESOURCE(IDB_BITMAP1));
}else if( 0==wcscmp(pnmHTML->szTarget ,(LPCWSTR)L"phone")){
hBitmap = LoadBitmap( g_hInst, MAKEINTRESOURCE(IDB_BITMAP2));
}else{
hBitmap = LoadBitmap( g_hInst, MAKEINTRESOURCE(IDB_BITMAP3));
}
BITMAP bmp;
GetObject(hBitmap, sizeof(BITMAP), &bmp);
InlineImageInfo.dwCookie = pnmHTML->dwCookie;
InlineImageInfo.iOrigHeight = bmp.bmHeight;
InlineImageInfo.iOrigWidth = bmp.bmWidth;
InlineImageInfo.hbm = hBitmap;
InlineImageInfo.bOwnBitmap = FALSE;
SendMessage(m_hwndHtml,DTM_SETIMAGE,0,(LPARAM)&InlineImageInfo);
OutputDebugString(TEXT("NM_INLINE_IMAGE\r\n"));
return 1;
/*If you are handling image processing yourself for the
HTML Control, you must return a non-zero value from
NM_INLINE_IMAGE. Otherwise the HTMLControl will attempt
to load the images on it's own, which will override the
results from your NM_INLINE_IMAGE processing code.*/
break;
}
case NM_INLINE_SOUND:
{
OutputDebugString(TEXT("NM_INLINE_SOUND\r\n"));
break;
}
case NM_TITLE:
{
OutputDebugString(TEXT("NM_TITLE\r\n"));
break;
}
case NM_META:
{
OutputDebugString(TEXT("NM_META\r\n"));
break;
}
case NM_BASE:
{
OutputDebugString(TEXT("NM_BASE\r\n"));
break;
}
case NM_CONTEXTMENU:
{
OutputDebugString(TEXT("NM_CONTEXTMENU\r\n"));
break;
}
case NM_INLINE_XML:
{
OutputDebugString(TEXT("NM_INLINE_XML\r\n"));
break;
}
case NM_BEFORENAVIGATE:
{
OutputDebugString(TEXT("NM_BEFORENAVIGATE\r\n"));
break;
}
case NM_DOCUMENTCOMPLETE:
{
OutputDebugString(TEXT("NM_DOCUMENTCOMPLETE\r\n"));
break;
}
case NM_NAVIGATECOMPLETE:
{
OutputDebugString(TEXT("NM_NAVIGATECOMPLETE\r\n"));
break;
}
case NM_TITLECHANGE:
{
OutputDebugString(TEXT("NM_TITLECHANGE\r\n"));
break;
}
default:
{
ASSERT(FALSE);
break;
}
}//switch
DeleteObject(hBitmap);
break;
}
===========================================================
處理NM_INLINE_IMAGE時, 切記要return 一個非零的值, 否則圖片會一閃即逝!!
2008年1月16日 星期三
2008年1月14日 星期一
工作超過一個星期 - 前2天 有被騙的感覺~~
正式工作到現在已經超過一個星期了,工作嘛,就是煩悶。
在正式脫離學生、死替代役的身份之後,邁入我人生的第一份正式工作--手機軟體工程師(聽起來還頗響亮,不錯不錯)。
不過第一天整個有被騙的感覺!
面試的時候本來說好是寫windows mobile的程式,結果到職第一天,就丟了一支Nokia的手機給我,叫我玩symbian。
玩了2天,我才提起勇氣,表明我的想法。因為我主要是怕之後被Nokia請到芬蘭寫程式,離家裡太遠。
不過主管人也很好,雖然看起來不願意,但也是接受了我的想法。第三天,我就開始玩windows mobile的程式。
== 待續 ==
在正式脫離學生、死替代役的身份之後,邁入我人生的第一份正式工作--手機軟體工程師(聽起來還頗響亮,不錯不錯)。
不過第一天整個有被騙的感覺!
面試的時候本來說好是寫windows mobile的程式,結果到職第一天,就丟了一支Nokia的手機給我,叫我玩symbian。
玩了2天,我才提起勇氣,表明我的想法。因為我主要是怕之後被Nokia請到芬蘭寫程式,離家裡太遠。
不過主管人也很好,雖然看起來不願意,但也是接受了我的想法。第三天,我就開始玩windows mobile的程式。
== 待續 ==
訂閱:
文章 (Atom)