А я и так сразу тебя послушал. Сначала послушал про WM_PRINT - сделал. А потом послушал про CreateCompatibleBitmap... И сделал...
А сделат я хочу следующее: у окна есть дочерние окна, которые WS_BORDER, но состоят из двух частей. В верху - заголовок, который я сам рисую, а внизу - еще одно окно, чаще всего это VB-форма. Надо таскать дочернюю форму за эту надпись. Т.е. Я хватаю за надпись. Тяну. В этот момент поверх "снятой" картинки рисуеться серый прямоугольник. Если я приблежаюсь к краю родительского окна, рамка становиться красной, и прилипает к этому краю. Нечто подобное(т.е. тоже самое) можно наблюдать во многих аппах, в VB6, к примеру. Исходник на эту тему я видел только на сайте vbAccelerator, правдо силно я не искал. Хотелось бы сделать по-порядку и по возможности самому. Учитывая, что тул-окон может быть весьма много они могут выстариваться весьма интересно:
- Код: Выделить всё
*********************************
* | | *
*-----| | *
* | | *
* | | *
*-------------------------------*
* клиентская *
* область *
* *
*-------------------------------*
*-------------------------------*
* | | *
*********************************
Ну основа примерно такая. Пожалуй все-таки расскажу. Есть родительское окно. VB-форма, обсабкласеная VB-классом.
Есть интерфейс IDocked. Родительское окно расчерчено примерно так:
- Код: Выделить всё
*********************************
* top *
* *
*-------------------------------*
* l | | r *
* e | | i *
* f | | g *
* t | | h *
* | | t *
* ------------------------------*
* *
* bottom *
*********************************
Два класса, ToolWidnow и Edge реализуют IDocked. Соотвтественно у MainWindow есть четыре предопредленных Edge - (top, bottom и т.п.). Каждый Edge представляет собой контейнер для других IDocked элементов - или ToolWindow или другой Edge. В каждом Edge элементы выстраиваються либо по вертикали, либо по горизонтали. Для программы это легко и понятно. Для пользователя это не применимо. Т.е. пользователь должен собирать набор из тул-окон как конструктор лего. Потянул сюда - приклеилось сюда. Потянул в другое место, значит в другое. Вот как это реализовать, вопрос другой. Может вы знаете, какую идею по этому поводу. Именно идею. Исходник меня не интересует - все что я могу сделать сам я хочу так и сделать, но не хотелось бы идти по заведеомо ложному пути. Может существует какая-то простая деталь которую я упустил.
Кстати, "Цитировать..." я раньше не замечал. К сожалению, в кэше старых страниц не осталось - они там вообще как-то странно сохраняються, так что верю наслово. Но все равно я ее заметил только позавчера.