討論區快速選單
知識庫快速選單
網路投保旅行平安險 CRM雲端平台必備Salesforce認證 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
ecv上thread
更改我的閱讀文章字型大小
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/15 下午 04:29:58
如果想加個thread能夠控制視窗類別的物件

該如何使用呢?例如:要在EditBox上顯示資料
作者 : channelayu(ChannelAyu) eVC優秀好手
[ 貼文 199 | 人氣 195 | 評價 850 | 評價/貼文 4.27 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/18 上午 10:55:06
CreateThread的時候把this傳進去
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/18 上午 11:41:43
void CDemoDlg::OnButton1()
{
// TODO: Add your control notification handler code here
LPDWORD m_lpThreadId;
CEdit * EDIT1 = (CEdit *)GetDlgItem( IDC_EDIT1 );
CreateThread(NULL, 0, thread_a, this, 0, m_lpThreadId);

}

DWORD thread_a(LPVOID lpParameter)
{
return 0;
}

例如這樣子,我要怎麼在thread_a中調用EDIT1?
傳this似乎無法指向EDIT1
作者 : channelayu(ChannelAyu) eVC優秀好手
[ 貼文 199 | 人氣 195 | 評價 850 | 評價/貼文 4.27 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/18 下午 04:02:25
既然你已經先把EDIT1 create出來了
那你就把EDIT1傳過去

因為進thread的參數是void
所以把它cast回CEdit就好

DWORD thread_a(LPVOID lpParameter)
{
CEdit *p;

p = (CEdit *)lpParameter;
p->SetWindowText(L"test");

return 0;
}
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/18 下午 04:22:12
明白了 一開始我是這麼做的
(CEdit *)p->SetWindowText(L'test');
剛看了大大的code 才知道運算子priority的問題

但剛才我試著讓CEDIT在thread裡create
但是GetDlgItem(HWND hDlg, int nIDDlgItem);
裡的HWND在evc裡面 我要怎麼取得這個值呢?

DWORD thread_a(LPVOID lpParameter)
{
CEdit * EDIT1 = (CEdit *)GetDlgItem( HWND, IDC_EDIT1 );<-----這個HWND要怎麼取得?
return 0;
}
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/18 下午 06:23:58
int i = 10;
HWND g_hWnd;
void CTdemoDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CEdit * EDIT1 = (CEdit *)GetDlgItem( IDC_EDIT1 );
LPDWORD m_lpThreadId = NULL;
g_hWnd = m_hWnd;
HANDLE H = CreateThread(NULL, 0, thread_a, NULL, 0, m_lpThreadId);
}

DWORD thread_a(LPVOID lpParameter)
{
i = i + 1;
CEdit * EDIT1 = (CEdit *)GetDlgItem( g_hWnd, IDC_EDIT1 );
CString CStmp;
CStmp.Format(_T("OnButton1 End!!%d\n"), i);
EDIT1->SetSel(-1, -1);
EDIT1->ReplaceSel(CStmp);
return 0;
}

當我採用一個global variable 也無法正確的create CEDIT這是為什麼呢?
作者 : channelayu(ChannelAyu) eVC優秀好手
[ 貼文 199 | 人氣 195 | 評價 850 | 評價/貼文 4.27 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/19 下午 12:51:17
::GetDlgItem除了參數不一樣
連回傳值也是不一樣的
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/19 下午 01:51:58
>::GetDlgItem除了參數不一樣
>連回傳值也是不一樣的

不是很明白 是指這樣也無法取得嗎?
方便的話用E-mail吧^^
qkadci@gmail.com
作者 : channelayu(ChannelAyu) eVC優秀好手
[ 貼文 199 | 人氣 195 | 評價 850 | 評價/貼文 4.27 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人creamocean註記此篇回應為最佳解答 2010/1/19 下午 02:47:37
CEdit * EDIT1 = (CEdit *)GetDlgItem( g_hWnd, IDC_EDIT1 );
global thread裡的GetDlgItem會被compiler認為是::GetDlgItem
它的回傳值type是HWND
cast成CEdit是無意義的
作者 : creamocean(藍海)
[ 貼文 25 | 人氣 0 | 評價 20 | 評價/貼文 0.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/1/19 下午 04:20:45
明白了^^
 板主 : 徵求中
 > WinCE/eVC - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - WinCE/eVC - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
WinCE/eVC
1 ChannelAyu 800 
2 770 
3 jonathan321 380 
4 lzx 220 
5 house 220 
6 ohyajack 160 
7 joe 130 
8 =悠= 120 
9 2338998 110 
10 阿偉 100 
WinCE/eVC
  專家等級 評價  
  一代宗師 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