Проектирование диалоговой панели
Сейчас мы визуально спроектируем диалоговую панель. Для этого вначале выбирете закладку "Resourse View" и раскройте пункт FourUp Resource. Выполните слдеующие действияvoid CMPODlg::OnFileOpen()
{
//Заголовок и путь к
файлу
char FileName[500];
char
FileTitle[100];
FileName[0]='\0';
//Создать объект диалогового окна
CFileDialog
file(TRUE);
//Уставновить аттрибуты диалогового
окна
file.m_ofn.lpstrFilter=TEXT("Bitmap picture files
*.bmp\0*.bmp\0All Files
*.*\0*.*\0\0");
file.m_ofn.lpstrFileTitle=FileTitle;
file.m_ofn.lpstrFile=FileName;
file.m_ofn.lpstrTitle="Open
BMP File";
//Вывести диалоговое окно
file.DoModal();
//Если ничего не выбранно, то вернуться
if
(FileName[0]=='\0')return;
//Изменить заголовок окна на имя
файла
SetWindowText(FileTitle);
//Получить указатель на объект в памяти
HANDLE hdibCurrent1
= OpenDIB(FileName);
hbm=0;
//Получить указатель на
изображение
hbm=BitmapFromDib(hdibCurrent1,0);
//Записать параметры изображения
GetObject(hbm,sizeof(BITMAP),(LPSTR)&bm);
//Получить координаты окна
CRect
wdRect;
GetClientRect(&wdRect);
ClientToScreen(&wdRect);
//Изменить размеры
окна
SetWindowPos(NULL,wdRect.left-4,wdRect.top-42,
bm.bmWidth+wdRect.left,bm.bmHeight+wdRect.top,NULL);
//Вывести картинку
OnPaint();
}
void CMPODlg::OnPaint()
{
if
(IsIconic())
{
.........
}
else
{
////-Ваш код начинается здесь-////
//Если открыт bmp файл
if(hbm) { CClientDC dc(this);
//Получить указатель на DC.
HDC hdc=::GetDC(m_hWnd);
HDC
hdcBits=::CreateCompatibleDC(hdc);
//Выбрать объект
SelectObject(hdcBits,hbm);
//Закрасить клиентскую облаcть черным цветом
CRect
wdRect;
GetClientRect(&wdRect);
CBrush
brush;
brush.CreateSolidBrush(RGB(0,0,0));
dc.FillRect(&wdRect,&brush);
//Вывести изображение
BitBlt(hdc, 0, 0,
bm.bmWidth,bm.bmHeight,hdcBits,0,0, SRCCOPY);
//Удалить
DC
DeleteDC(hdcBits);
::ReleaseDC(m_hWnd,hdc);
}
////-Ваш код заканчивается здесь-////
CDialog::OnPaint();
}
}
>
В начало
Назад
Радио для всех © |