Форум программистов, компьютерный форум CyberForum.ru

Дочернее окно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запись значения в динамический массив http://www.cyberforum.ru/cpp-beginners/thread343011.html
Добрый вечер, Сел я на ночь глядя писать программу, но вот проблема int s=0,k=0,z=0; char *temp = new char; char *tempnum = new char; int *tempnum3 = new int; for(int i=0; i < size; i++) { switch(A) {
C++ Спасайте нуба Нужно до 7 утра уже сегодня видимо написать одну из трех программ. Судоку, Покер, Оргонайзер. При помощи классов. кто спасет....? http://www.cyberforum.ru/cpp-beginners/thread343010.html
C++ Помогите решить ошибки при компиляции
Вот такой код: // #include <iostream.h> #include <conio.h> #include <assert.h> template<class NODETYPE> class ListNode
Вектор векторов C++
Вектор векторов - плюсы и минусы, альтернативы. Подскажите новичку) P.S. Внутри массив из 2х интов)
C++ Классы http://www.cyberforum.ru/cpp-beginners/thread342994.html
Здравствуйте, а не подскажите может ли указатель базового класса указывать на наледника
C++ Непонятный приём строки Всем привет. Считываю строку с консоли: char* str = new char(); cin.getline(str, 80); cout<<str<<endl; Если вводить больше 24 символов, то почему-то выводятся только первые 24 символа и после них непонятно откуда взявшийся знак '!'. Пробовал считывать через gets(str) --- не помогло. подробнее

Показать сообщение отдельно
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
20.08.2011, 09:30     Дочернее окно
alkagolik, При создании дочерних окон Вы задаёте в качестве параметра hMenu - идентификатор дочернего окна (например, (HMENU) ID_CHILD), то есть целое число (но только для дочерних окон, для родительских этот параметр является описателем меню). Зная описатель дочернего окна, можно получить идентификатор этого окна.
C
1
id = GetWindowLong(hwnd, GWL_ID);
alkagolik,
C
1
2
3
4
GetClientRect(hChldOM, &rect);
 
        ymax = rect.bottom - 10;
        ymin = rect.top +5;
При заходе в оконную процедуру каждый раз вычисляется это. Не лучше ли вычислять только тогда, когда это действительно нужно.
C
1
2
3
4
case WM_TIMER:
       checkOM = true;
       break;
case WM_PAINT:
рисуется только один пиксель потому, что Вы не правильно перерисовываете. В функции WM_PAINT, то есть при получении описателя контекста устройства с помощью функции BeginPaint Вы можете рисовать только в так называемой недействительной области окна (т. е. та, которую действительно нужно перерисовать), которая является прямоугольником ps.rcPaint. За пределами этой области рисовать нельзя. Это сделано для того, чтобы не перерисовывать то, что не нужно, и ускорить процесс рисования. Поэтому при обработке сообщения WM_TIMER Вам необходимо использовать функцию InvalidateRect для установки недействительной области.
C
1
2
3
4
5
6
BOOL InvalidateRect(
  __in  HWND hWnd,          
  __in  const RECT *lpRect,  /* недействительная область, если == NULL, то вся клиентская область */
  __in  BOOL bErase   /* если == TRUE, то фон окна в недействительной стирается,
                                                т. е. закрашивается кистью фона */
);
Т. к. сообщение WM_PAINT извлекается из очереди сообщений последним, то можете использовать функцию (после InvalidateRect)
C
1
UpdateWindow(hwnd);
, чтобы немедленно обработать сообщение WM_PAINT.
 
Текущее время: 11:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru