|
|
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
VC++. MFC. Есть консольное приложение. В нем создается экземпляр класса наследованный от CObject. Этот класс в свою очередь создает поток (CWinThread). Каким чудом послать сообщение из этого потока в класс его породивший? PostMessage требует хендл окна. А где ж я его возьму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 10:49 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
PostThreadMessage ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:03 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
требует идентификатор потока которому отправляется сообщение. Как его получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:11 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
дед МакарVC++. MFC. Есть консольное приложение. В нем создается экземпляр класса наследованный от CObject. Этот класс в свою очередь создает поток (CWinThread). Каким чудом послать сообщение из этого потока в класс его породивший? PostMessage требует хендл окна. А где ж я его возьму? при создании потока хендл можно передать через первый параметр AfxBeginThread(GetSafeHwnd()/*wndHandle*/, ...) а в потоке его привести к HWND и послать сообщение ::PostMessage((HWND)wndHandle, THRD_MESSAGEID, NULL, NULL); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:13 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
у меня вот так Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:17 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
Cerebrum при создании потока хендл можно передать через первый параметр AfxBeginThread(GetSafeHwnd()/*wndHandle*/, ...) а в потоке его привести к HWND и послать сообщение ::PostMessage((HWND)wndHandle, THRD_MESSAGEID, NULL, NULL); автор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. где вы там увидели первым параметром хендл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:20 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
дед Макару меня вот так Код: plaintext 1. тогда можно через глобальную переменную HANDLE, если он (поток) один, но это не безопасно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:21 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
или же создать в классе, дополнительную переменную и прежде чем создавать поток записывать хендл в нее и потрошить класс уже в потоке. -------------------------------------------------------------- Don't worry - wear Huggies ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:23 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
Cerebrumили же создать в классе, дополнительную переменную и прежде чем создавать поток записывать хендл в нее и потрошить класс уже в потоке. -------------------------------------------------------------- Don't worry - wear Huggies Вопрос. Чей это хендл? И как его получить? Это ж консольное приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:53 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
GetModuleHandle приведенный к HWND? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:56 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас вроде уже все сказал ... вроде пользуешь MFC значит CWinApp присутствует (?) что мешает AfxGetApp( )->PostThreadMessage();? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 12:14 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
NSFuimusчто мешает AfxGetApp()->PostThreadMessage(); а что мешает Код: plaintext 1. 2. 3. 4. 5. 6. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 12:29 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
ну раз уж пошла такая пьянка ... :)) то extern CТвоеApp theApp; и хде угодна theApp.PostThreadMessage() :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 12:33 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
А как же в классе от CObject объявить MESSAGE_MAP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 13:49 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
Или даже нетак вопрос поставлю. Консольное приложение MFC. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. От кого породить CTestApp, что б он (CTestApp) мог принимать сообщения от порожденных ним потоков? (Может зря я седня на работу вышел?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 13:54 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
ни разу не писал консольное приложение, но очевидно, што тебе нада написать свой класс от CWinApp в котором и будет фся твоя MESSAGE_MAP ... и вместо CWinApp theApp; поставить свое CMyApp theApp;... этож очевидна ... такое мое мнение(с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 14:08 |
|
||
|
Посылка сообщений из порожденного потока
|
|||
|---|---|---|---|
|
#18+
NSFuimusни разу не писал консольное приложение, но очевидно, што тебе нада написать свой класс от CWinApp в котором и будет фся твоя MESSAGE_MAP ... и вместо CWinApp theApp; поставить свое CMyApp theApp;... этож очевидна ... такое мое мнение(с) очевидно, но работать не хочет если унаследовать от CWinApp. В ран-тайм вываливается с ошибкой в модуле {чего-то там системное}\appcore.h ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=348&tid=2031004]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 373ms |

| 0 / 0 |
