Premnath Mali Ответов: 2

Как переместить окно с помощью Picture control в mfc


В приложении MFC
Я создал диалог без границ и поместил один элемент управления изображением в диалог с одним растровым изображением

поэтому я хотел использовать это поле с картинкой в качестве строки заголовка

это означает, что когда кнопка мыши нажата на картинке и мышь перемещается или перетаскивается, окно также перемещается

Что же мне делать?

Что я уже пробовал:

LRESULT CMoveWinUsingPicDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
	if( message == (WM_RBUTTONDOWN) )
	{
		//I think Here I can do something or suggest any other best place or solution
	}
}

2 Ответов

Рейтинг:
2

Richard MacCutchan

Вы уже разместили этот вопрос по адресу Как переместить окно без границы с помощью picture control - C / C++ / MFC дискуссионные доски[^], пожалуйста, не делайте репостов на нескольких форумах.


Premnath Mali

Прости за это !
Но я еще не получил решения

Richard MacCutchan

Я предложил один из них в другом вашем вопросе. Пожалуйста, удалите это и придерживайтесь одного форума.

Рейтинг:
10

Premnath Mali

BOOL CMoveWinUsingPicDlg::PreTranslateMessage(MSG *pMsg)
{
	static bool mouse_down = false;
	static CRect MainRect;
	static CPoint point;
	
	switch(pMsg->message)
	{
	case WM_LBUTTONDOWN:
		GetWindowRect(&MainRect);
		point = pMsg->pt;
		ScreenToClient(&point);
		mouse_down = true;
		break;
	case WM_LBUTTONUP:
		mouse_down = false;
		break;
	case WM_MOUSEMOVE:
		CRect r;
		m_myPic.GetWindowRect(&r);
		if(mouse_down && r.PtInRect(pMsg->pt))
		{
			MoveWindow(pMsg->pt.x - point.x,pMsg->pt.y - point.y,
				MainRect.Width(),MainRect.Height());
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}