English version

RSS

Окна

Автор: Александр Шаргин
Аннотация: Когда пользователь изменяет размеры окна, Windows сама запрашивает у программы минимальный и максимальный размеры, посылая окну сообщение WM_GETMINMAXINFO. При этом в параметре lParam размещается указатель на структуру MINMAXINFO, в которую и следует записать нужные значения. Затем нужно вернуть 0. ...

Ключевые слова:
Автор: Александр Шаргин
Аннотация: Многие знают, что для перемещения окна на передний план существует функция SetForegroundWindow из Win32 API (в MFC ей соответствует обёртка CWnd::SetForegroundWindow). Она отлично работала под Windows 95 и Window NT. Но потом парни из Майкрософт провозгласили новый принцип: "Никто кроме пользователя...

Ключевые слова:
Автор: IPv6
Аннотация: <span class='lineQuote level3'>G&gt;&gt;&gt;У меня под XP он работает нормально, какие тут могут быть грабли?</span><br /> <span class='lineQuote level2'>IP&gt;&gt;Это работает в редкой половине случаев, проверено на большой практичке. часто приложение становится foreground, но его окно продолжает находиться за другими. лучше всего работает вариант с SC_HOTKEY</span><br /> <span class='lineQuote level1'>А&gt;Что за вариант ?</span><br /> <br /> [cc...

Ключевые слова:
Автор: Алексей Кирюшкин
Аннотация: Демонстрационное приложение DragWin

Ключевые слова:
Автор: Павел Блудов
Аннотация: Демонстрационное приложение FullscreenView (30kb)

Ключевые слова:
Автор: Burd
Аннотация: <span class='lineQuote level1'>А&gt;у меня в программе должна быть реализована функция "свернуть все окна".</span><br /> <br /> <pre class='c'><code> HWND wnd = ::FindWindow( <span class='str'>"Shell_TrayWnd"</span>, NULL ); <span class='kw'>if</span> ( wnd != NULL ) ::SendMessage( wnd, WM_COMMAND, 0x019f, 0 ); <span class='com'>//Свернуть все окна</span></code></pre>

Ключевые слова:
Автор: aGrey
Аннотация: Вариантов конечно много, но, есть таки и "легальный" способ...<br /> На C++ это будет выглядеть так:<br /> <br /> [ccode]<br /> #include &lt;windows.h&gt;<br /> #include &lt;shldisp.h&gt; // ole32.lib uuid.lib<br /> <br /> BOOL SHMinimizeAll(BOOL fUndo) {<br /> <br /> LONG lRes = -1, lNCo = CoInitialize(NULL);<br /> <br /> if(lNCo == S_OK || lNCo == S_FALSE)<br /> {<br /> I...

Ключевые слова:
Автор: Александр Шаргин
Аннотация: Существует по крайней мере два способа решить эту задачу. Оба документированы в базе знаний Микрософт. Первый очень прост в реализации, но подходит не всегда. Второй более универсальный, а его реализация лишь немного труднее.

Ключевые слова:
Автор: VladD2
Аннотация: Здравствуйте Долгов Сергей Сергеевич.<br /> <br /> Приведенный ниже код скрывает/показывает первый попавшийся Notepad (т.е. можно скрывать любое окно... даже не свое).<br /> <br /> [ccode]<br /> HWND hWnd = ::FindWindow(_T("Notepad"), NULL);<br /> if(!hWnd)<br /> return;<br /> // Если окно уже имеет парента...<br /> if(::GetWindowLong(hWnd, G...

Ключевые слова:
Автор: Gurza
Аннотация: // #include &lt;ShlObj.h &gt; из PSDK 2001<br /> // Удаление с панели<br /> <br /> [ccode]<br /> CoInitialize(NULL);<br /> ITaskbarList *pTaskBar = 0;<br /> HRESULT hr = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_ALL, IID_ITaskbarList, (void**)&amp;pTaskBar);<br /> if(SUCCEEDED(hr))<br /> {<br /> pTaskBar-&gt;DeleteTab(m_hWnd);<br /> pTaskB...

Ключевые слова:
Автор: Leonid Troyanovsky
Аннотация: Здравствуйте, Аноним, Вы писали:<br /> <span class='lineQuote level1'><br /> А&gt;Как проверить, показывается ли у приложения кнопка на TaskBar?</span><br /> <br /> [pascal]<br /> function IsTaskbarBtnExist(h: HWND): Boolean;<br /> var<br /> exstyle: Longint;<br /> begin<br /> Result:= IsWindowVisible(h);<br /> if Result then<br /> begin<br /> exstyle := GetWindowLong(h, GWL_EXSTYLE...

Ключевые слова:
Автор: Alex Fedotov
Аннотация: Здравствуйте, Vis, Вы писали:<br /> <span class='lineQuote level1'><br /> Vis&gt;Можно ли имея HWND извлечь иконку окна, причем:</span><br /> <span class='lineQuote level1'><br /> Vis&gt;1) HWND принадлежит другому процессу.</span><br /> <span class='lineQuote level1'>Vis&gt;2) Окно имеет captionbar c иконкой, видимой визуально.</span><br /> <span class='lineQuote level1'><br /> <br /> Vis&gt;Почему то WM_GETICON не работает. </span><br /> <span class='lineQuote level1'>Vis&gt;Может у него какие-то ограничения на окна из другого процесса...</span>

Ключевые слова:
Автор: Roustem Galeev
Аннотация: В свое время, когда я только начинал осваивать хитрости программирования под Windows, мне пришла в голову мысль, что хорошо было бы создать учебную программу для экспериментирования с многочисленными параметрами используемых функций – чтобы не надо было каждый раз редактировать и компилировать заново исходный код «учебного» проекта, а можно было бы выбрать необходимые опции прямо в диалоговом окне и тут же увидеть результат. И через некоторое время я ее действительно создал.

Ключевые слова:
Автор: Alex Fedotov
Аннотация: <span class='lineQuote level1'>A&gt;Почему ShowCursor не работает в потоках?</span><br /> <br /> Потому что курсор мыши является частью input state, и по умолчанию для каждого потока &mdash; разный. ShowCursor на самом деле работает, только эффект будет видет тогда, когда курсор находится над окном, которым владеет поток, вызвавший SetCursor.<br /> <span class='lineQuote level1'><br /> А&gt;и как э...</span>

Ключевые слова:
Автор: Сапронов Андрей Юрьевич
Источник: RSDN Magazine #1-2003
Аннотация: В статье рассматривается создание непрямоугольных окон с применением регионов Windows GDI. Помимо непосредственного описания создания непрямоугольных окон, описано использование функций WinAPI для работы с регионами, а также соответствующих им методов класса CRgn библиотеки MFC.

Ключевые слова: GetRegionData, ExtCreateRegion, CreateFromData, CreatePolygonRgn, CombineRgn, SetWindowRgn, GetWindowRgn, CreateEllipticRgnIndirect, OffsetRgn, XFORM