示例#1
0
文件: WinMain.cpp 项目: ylca/XCGUI
 int OnBtnClick(BOOL *pbHandled)
 {
     if(m_hGif1){ XShape_Destroy(m_hGif1); m_hGif1=NULL; }
     if(m_hGif2){ XShape_Destroy(m_hGif2); m_hGif2=NULL; }
     XWnd_RedrawWnd(m_hWindow);
     return 0;
 }
示例#2
0
//鼠标移动
BOOL CALLBACK DragBar_EleMouseMove(HELE hEle,UINT flags,POINT *pPt)
{
	layout_dragBar_* pDrawBar=(layout_dragBar_*)hEle;

	if(FALSE==pDrawBar->bDown)
	{
		if(((layout_dragBar_*)hEle)->bHorizontal)
			SetCursor(LoadCursor(NULL,IDC_SIZENS));
		else
			SetCursor(LoadCursor(NULL,IDC_SIZEWE));
		return FALSE;
	}

	HWINDOW hWindow=XEle_GetHWindow(hEle);
	if(pDrawBar->bHorizontal)
	{
		POINT pt=*pPt;
		XEle_PointToWndClient(hEle,&pt);

		layoutPane_ *pPane=(layoutPane_*)pDrawBar->pCell->hPane;
		if(pPane && pane_state_dock==pPane->state)
		{
			RECT rcClient;
			XFrameWnd_GetLayoutAreaRect(hWindow,&rcClient);
			if(align_bottom==pPane->dockAlign)
			{
				int size=pt.y-PANE_DRAGBAR_WIDTH;
				if(size>(rcClient.top+80) && size<(rcClient.bottom-80))
					pDrawBar->pCell->rect.top=size;
			}else
			{
				int size=pt.y+PANE_DRAGBAR_WIDTH;
				if(size>(rcClient.top+80) && size<(rcClient.bottom-80))
					pDrawBar->pCell->rect.bottom=size;
			}

			Cell_OnSize2(pDrawBar->pCell,hWindow,TRUE,TRUE);
			XWnd_RedrawWnd(hWindow);
		}else
		{
			int height=pDrawBar->pCell->rect.bottom-pDrawBar->pCell->rect.top-PANE_DRAGBAR_WIDTH;

			int scale=50;
			int size=pt.y-pDrawBar->pCell->rect.top;
			if(0!=height && 0!=size)
			{
				scale=(int)(((size)/(double)height)*100);
			}

			if(scale>10 && scale<90)
			{
				pDrawBar->pCell->pCell1->scale=scale;

				//	if(cell_type_pane==pDrawBar->pCell->pCell1->type && ((layoutPane_*)pDrawBar->pCell->pCell1->hPane)->bFixedSize)
				//	{
				pDrawBar->pCell->pCell1->rect.bottom=pt.y;
				//	}else if(cell_type_pane==pDrawBar->pCell->pCell2->type && ((layoutPane_*)pDrawBar->pCell->pCell2->hPane)->bFixedSize)
				//	{
				pDrawBar->pCell->pCell2->rect.top=pDrawBar->pCell->pCell2->rect.bottom-(pDrawBar->pCell->pCell2->rect.bottom-pt.y)+PANE_DRAGBAR_WIDTH;//-pDrawBar->pCell->rect.left);
				//	}

				Cell_OnSize2(pDrawBar->pCell,hWindow,TRUE,TRUE);

				RECT rcDraw=pDrawBar->pCell->rect;
				int left=XWnd_GetClientLeft(hWindow);
				int top=XWnd_GetClientTop(hWindow);

				rcDraw.left+=left;
				rcDraw.right+=left;
				rcDraw.top+=top;
				rcDraw.bottom+=top;

				XWnd_RedrawWndRect(hWindow,&rcDraw);
			}
		}
	}else
	{
		POINT pt=*pPt;
		XEle_PointToWndClient(hEle,&pt);

		layoutPane_ *pPane=(layoutPane_*)pDrawBar->pCell->hPane;
		if(pPane && pane_state_dock==pPane->state)
		{
			RECT rcClient;
			XFrameWnd_GetLayoutAreaRect(hWindow,&rcClient);
			if(align_right==pPane->dockAlign)
			{
				int size=pt.x-PANE_DRAGBAR_WIDTH;
				if(size>(rcClient.left+80) && size<(rcClient.right-80))
					pDrawBar->pCell->rect.left=size;
			}else
			{
				int size=pt.x+PANE_DRAGBAR_WIDTH;
				if(size>(rcClient.left+80) && size<(rcClient.right-80))
					pDrawBar->pCell->rect.right=size;
			}

			Cell_OnSize2(pDrawBar->pCell,hWindow,TRUE,TRUE);
			XWnd_RedrawWnd(hWindow);
		}else
		{
			int width=pDrawBar->pCell->rect.right-pDrawBar->pCell->rect.left-PANE_DRAGBAR_WIDTH;

			int scale=50;
			int size=pt.x-pDrawBar->pCell->rect.left;
			if( 0!=width && 0!=size)
			{
				scale=(int)(((size)/(double)width)*100);
			}
			
			if(scale>10 && scale<90)
			{
				pDrawBar->pCell->pCell1->scale=scale;

				//	if(cell_type_pane==pDrawBar->pCell->pCell1->type && ((layoutPane_*)pDrawBar->pCell->pCell1->hPane)->bFixedSize)
				//	{
				pDrawBar->pCell->pCell1->rect.right=pt.x;
				//	}else if(cell_type_pane==pDrawBar->pCell->pCell2->type && ((layoutPane_*)pDrawBar->pCell->pCell2->hPane)->bFixedSize)
				//	{
				pDrawBar->pCell->pCell2->rect.left=pDrawBar->pCell->pCell2->rect.right-(pDrawBar->pCell->pCell2->rect.right-pt.x)+PANE_DRAGBAR_WIDTH;//-pDrawBar->pCell->rect.left);
				//	}

				Cell_OnSize2(pDrawBar->pCell,hWindow,TRUE,TRUE);

				RECT rcDraw=pDrawBar->pCell->rect;
				int left=XWnd_GetClientLeft(hWindow);
				int top=XWnd_GetClientTop(hWindow);

				rcDraw.left+=left;
				rcDraw.right+=left;
				rcDraw.top+=top;
				rcDraw.bottom+=top;

				XWnd_RedrawWndRect(hWindow,&rcDraw);
			}
		}
	}

	return FALSE;
}