Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

"заморозка" окна?

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Feb 16, 2012 23:46    Post subject: "заморозка" окна? Reply with quote

Как сделать для окна своей программы эффект "заморозки"?
http://forum.wincmd.ru/viewpost.php?p=85003
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Fri Feb 17, 2012 09:56    Post subject: Reply with quote

Ну так читай же тему после этого сообщения. Smile

Code:
locktc=msg($0B, #1-0 > 0 ? 0 : 1, 0)            ; Disable/enable TC window redraw

Комментарии относительно синтаксиса:
Code:
; msg(<umsg>, <wparam>, <lparam>, [<post>])

Code:
WM_SETREDRAW=$0B      ; Enables/disables window redraw

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Fri Feb 17, 2012 09:57; edited 1 time in total
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Fri Feb 17, 2012 09:57    Post subject: Reply with quote

Code:
BOOL LockWindowUpdate(
  __in  HWND hWndLock
);


http://msdn.microsoft.com/en-us/library/dd145034.aspx
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Fri Feb 17, 2012 09:58    Post subject: Reply with quote

Volniy wrote:
Code:
BOOL LockWindowUpdate(
  __in  HWND hWndLock
);


http://msdn.microsoft.com/en-us/library/dd145034.aspx

Её не рекомендуется использовать, и об этом написано в документации:
Quote:
The purpose of the LockWindowUpdate function is to permit drag/drop feedback to be drawn over a window without interference from the window itself. The intent is that the window is locked when feedback is drawn and unlocked when feedback is complete. LockWindowUpdate is not intended for general-purpose suppression of window redraw. Use the WM_SETREDRAW message to disable redrawing of a particular window.

Там целая куча тонкостей с LockWindowUpdate, одна в том, что только одно единственное окно в конкретный момент времени может быть заблокировано с её помощью.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Feb 17, 2012 12:39    Post subject: Reply with quote

Мне не нужна TCFS2 - не стал читать тему. Мне нужно как раз WM_SETREDRAW
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Fri Feb 17, 2012 13:10    Post subject: Reply with quote

А мне бы на твоём месте стало интересно посмотреть, чем закончилось обсуждение этой хотелки... Тут-то и узнал бы про WM_SETREDRAW.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Feb 17, 2012 22:47    Post subject: Reply with quote

А как ты перерисовываешь окно Тотала? что-то WM_SETREDRAW с 1 не рисует.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Sat Feb 18, 2012 19:56    Post subject: Reply with quote

И не должно.

В той же справке по сообщению написано, как перерисовывать.
Quote:
This message can be useful if an application must add several items to a list box. The application can call this message with wParam set to FALSE, add the items, and then call the message again with wParam set to TRUE. Finally, the application can call RedrawWindow(hWnd, NULL, NULL, RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN) to cause the list box to be repainted.


А функция redraw() в TCFS2 делает вот что:
Code:
SetWindowPos(options.tchwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_NOMOVE|SWP_NOZORDER|SWP_NOSIZE);

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group