예제 #1
0
//插入GIF
BOOL CALLBACK OnEventBtnClick_GIF(HELE hEle,HELE hEventEle)
{
	if(hEle != hEventEle) return FALSE;

	int row=0;
	int column=0;
	XRichEdit_GetCurrentPos(hRichEdit2,&row,&column);
	XRichEdit_InsertImageGif(hRichEdit2,L"gif\\222.gif",row,column);
	XEle_RedrawEle(hRichEdit2);
	return TRUE;
}
예제 #2
0
//插入图片
BOOL CALLBACK OnEventBtnClick_Image(HELE hEle,HELE hEventEle)
{
	if(hEle != hEventEle) return FALSE;

	int row=0;
	int column=0;
	XRichEdit_GetCurrentPos(hRichEdit2,&row,&column);
	HIMAGE hImage=XImage_LoadFile(L"image\\tou.jpg");
	XRichEdit_InsertImage(hRichEdit2,hImage,L"image\\tou.jpg",row,column);
	XEle_RedrawEle(hRichEdit2);
	return TRUE;
}
예제 #3
0
//默认字体颜色改变
BOOL CALLBACK OnEventEditChange_default_color(HELE hEle,HELE hEventEle)
{
	if(hEle != hEventEle) return FALSE;

	COLORREF color1=XEle_GetTextColor(hRichEdit2);
	COLORREF color2=XCHColor_GetColor(hColor);
	if (color1!=color2)
	{
		XEle_SetTextColor(hRichEdit2,color2);
		XEle_RedrawEle(hRichEdit2);
	}
	return TRUE;
}
예제 #4
0
BOOL CALLBACK MenuBar_OnMouseMove(HELE hEle,UINT flags,POINT *pPt)
{
	menuBar_ *pMenuBar=MENUBAR(hEle);
	if(pMenuBar->bDown)
	{
		POINT pt={pPt->x,pPt->y};
		int count=Array_GetCount(((ele_*)hEle)->hArrayEle);
		for(int i=0; i<count; i++)
		{
			ele_ *pChild=Array_GetAtEle(((ele_*)hEle)->hArrayEle,i);

			if(XC_MENUBAR_BUTTON==XC_GetObjectType(pChild))
			{
				if( PtInRect(&pChild->rect,pt) )
				{
					int menuItemCount=XMenu_GetItemCount(((menuBarButon_*)pChild)->hMenu);
					if(menuItemCount>0)
					{
						if(pMenuBar->pBtnTop!=((menuBarButon_*)pChild))
						{
							if(pMenuBar->pBtnTop) //关闭先前的菜单
							{
								MenuBarBtn_CloseMenu((HELE)pMenuBar->pBtnTop);
								((button_*)pMenuBar->pBtnTop)->state=STATE_LEAVE; //修改按钮状态
								XEle_RedrawEle((HELE)pMenuBar->pBtnTop);
							}
							pMenuBar->pBtnTop=(menuBarButon_*)pChild;
							((button_*)pChild)->state=STATE_DOWN;
							XEle_RedrawEle((HELE)pChild);
							MenuBarBtn_PopupMenu((HELE)pChild);
						}
					}
					break;
				}
			}
		}
	}
	return FALSE;
}
예제 #5
0
BOOL CALLBACK MyEventBtnClick8(HELE hEle,HELE hEventEle) //按钮点击事件
{
	int BeginRow=0;
	int	BeginColumn=0;
	int	EndRow=0;
	int	EndColumn=0;
	if(XRichEdit_GetSelectPos(hRichEdit,&BeginRow,&BeginColumn,&EndRow,&EndColumn))
	{
		XRichEdit_SetItemFontEx(hRichEdit,BeginRow,BeginColumn,EndRow,EndColumn,&Font3);
		XEle_RedrawEle(hRichEdit);
	}
	return TRUE;
}
예제 #6
0
파일: gif.cpp 프로젝트: BraveStone/xcgui
VOID CALLBACK Gif_TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
{
	gif_ *pObject=(gif_*)idEvent;

	ImageEx *pImageEx=pObject->pGif;

	//pImageEx->DrawFrameGIF();

	KillTimer(hwnd,idEvent);
	//DrawFrameGIF();
	XEle_RedrawEle((HELE)pObject);

}
예제 #7
0
파일: WinMain.cpp 프로젝트: ylca/XCGUI
int CALLBACK OnEventProc(HELE hEventEle, UINT nEvent, WPARAM wParam, LPARAM lParam, BOOL *pbHandled)
{
	switch(nEvent)
	{
	case XE_USER_SETTEXT:
		{
			XShapeText_SetText(g_ShapeText,(wchar_t*)wParam);
			XEle_RedrawEle(hEventEle);
		}
		break;
	}
	return 0;
}
예제 #8
0
파일: button.cpp 프로젝트: BraveStone/xcgui
void WINAPI XBtn_SetCheck(HELE hEle,BOOL bCheck)
{
	IsButtonDebug(hEle,__FUNCTION__);
	if(BUTTON(hEle)->bCheck==bCheck)
		return ;

	BUTTON(hEle)->bCheck=bCheck;
	if(XC_RADIO==((ele_*)hEle)->eleType)
	{
		if(RADIO(hEle)->hBindEle)
		{
			if (BUTTON(hEle)->bCheck)
			{
				XEle_ShowEle(RADIO(hEle)->hBindEle,TRUE);
				XEle_RedrawEle(RADIO(hEle)->hBindEle);
			}else
			{
				XEle_RedrawEle(RADIO(hEle)->hBindEle);
				XEle_ShowEle(RADIO(hEle)->hBindEle,FALSE);
			}
		}
	}
}
예제 #9
0
void OnFontChangT() //字体改变
{
	wchar_t name[MAX_PATH]={0};

	XComboBox_GetText(hCombox_fontName,name,MAX_PATH);;
	int   size=XEdit_GetInt(hFontSize);

	HFONT hFontT=XC_CreateFont(name,size,bBold,bItalic,bUnderline);
	XEle_SetFont(hRichEdit2,hFontT);

	if (hFont) //释放先前字体
		DeleteObject(hFont);
	hFont=hFontT;
	XEle_RedrawEle(hRichEdit2);
}
예제 #10
0
BOOL CALLBACK OnEventEditChange(HELE hEle,HELE hEventEle)
{
	COLORREF color=XCHColor_GetColor(hColor);

	int BeginRow=0;
	int	BeginColumn=0;
	int	EndRow=0;
	int	EndColumn=0;
	if(XRichEdit_GetSelectPos(hRichEdit,&BeginRow,&BeginColumn,&EndRow,&EndColumn))
	{
		XRichEdit_SetItemColorEx(hRichEdit,BeginRow,BeginColumn,EndRow,EndColumn,color);
		XEle_RedrawEle(hRichEdit);
	}
	return TRUE;
}
예제 #11
0
파일: button.cpp 프로젝트: BraveStone/xcgui
BOOL CALLBACK Btn_OnEventKillFocus(HELE hEle,HELE hEventEle) //失去焦点
{
	if(hEle==hEventEle)
	{
		if(((ele_*)hEle)->bEnable)
		{
			if(STATE_STAY==BUTTON(hEle)->state)
			{
				BUTTON(hEle)->state=STATE_LEAVE;
			}
		}
		XEle_RedrawEle(hEle);
	}
	return FALSE;
}
예제 #12
0
파일: button.cpp 프로젝트: BraveStone/xcgui
BOOL CALLBACK Btn_OnLButtonDown(HELE hEle,UINT flags,POINT *pPt)
{
	if(((ele_*)hEle)->bEnable)
	{
		if(BUTTON(hEle)->bCursorHand)
		{
			SetCursor(LoadCursor(NULL,IDC_HAND));
		}
		if(FALSE==XEle_IsHitChildEle(hEle,pPt))
		{
			BUTTON(hEle)->state=STATE_DOWN;
			BUTTON(hEle)->bDown=TRUE;
			XEle_RedrawEle(hEle);
		}
	}
	return FALSE;
}
예제 #13
0
void OnFontChangT2() //选择内容 字体改变
{
	wchar_t name[MAX_PATH]={0};

	XComboBox_GetText(hCombox_fontName2,name,MAX_PATH);;
	int   size=XEdit_GetInt(hFontSize2);

	int BeginRow=0;
	int	BeginColumn=0;
	int	EndRow=0;
	int	EndColumn=0;
	if(XRichEdit_GetSelectPos(hRichEdit2,&BeginRow,&BeginColumn,&EndRow,&EndColumn))
	{
		LOGFONTW  font;
		XC_InitFont(&font,name,size,bBold2,bItalic2,bUnderline2);
		XRichEdit_SetItemFontEx(hRichEdit2,BeginRow,BeginColumn,EndRow,EndColumn,&font);
		XEle_RedrawEle(hRichEdit2);
	}
}
예제 #14
0
파일: button.cpp 프로젝트: BraveStone/xcgui
BOOL CALLBACK Btn_OnLButtonUp(HELE hEle,UINT flags,POINT *pPt)
{
	if(((ele_*)hEle)->bEnable)
	{
		if(BUTTON(hEle)->bCursorHand)
		{
			SetCursor(LoadCursor(NULL,IDC_HAND));
		}
		if(BUTTON(hEle)->bDown)
		{
			BUTTON(hEle)->state=STATE_STAY;
			XEle_RedrawEle(hEle);

			BUTTON(hEle)->bDown=FALSE;
			Ele_SendEvent(hEle,XE_BNCLICK,0,0);
		}
	}
	return FALSE;
}
예제 #15
0
BOOL CALLBACK PGrid_OnMouseMove(HELE hEle,UINT flags,POINT *pPt)
{
	propertyGrid_ *pObj=(propertyGrid_*)hEle;
	if(pObj->bDown)
	{
		int width=((ele_*)pObj)->rect.right-((ele_*)pObj)->rect.left-50;
		if(pPt->x>50 && pPt->x<width)
			pObj->spacePoint=pPt->x+1;
		XPGrid_SetSpacePoint(hEle,pObj->spacePoint);
		SetCursor(LoadCursor(NULL,IDC_SIZEWE));
		XEle_RedrawEle(hEle);
	}else
	{
		if(pPt->x<pObj->spacePoint &&  pPt->x>(pObj->spacePoint-5))
		{
			SetCursor(LoadCursor(NULL,IDC_SIZEWE));
		}
	}
	return FALSE;
}
예제 #16
0
//选择内容颜色改变
BOOL CALLBACK OnEventEditChange_select_color(HELE hEle,HELE hEventEle)
{
	if(hEle != hEventEle) return FALSE;

	COLORREF color1=XEle_GetTextColor(hRichEdit2);
	COLORREF color2=XCHColor_GetColor(hColor2);
	if (color1!=color2)
	{
		int BeginRow=0;
		int	BeginColumn=0;
		int	EndRow=0;
		int	EndColumn=0;
		if(XRichEdit_GetSelectPos(hRichEdit2,&BeginRow,&BeginColumn,&EndRow,&EndColumn))
		{
			XRichEdit_SetItemColorEx(hRichEdit2,BeginRow,BeginColumn,EndRow,EndColumn,color2);
			XEle_RedrawEle(hRichEdit2);
		}

	}
	return TRUE;
}
예제 #17
0
/// @brief ÉèÖû¬¿éλÖÃ.
/// @param hEle   ÔªËؾä±ú
/// @param pos  »¬¿éλÖÃ.
void WINAPI XSliderBar_SetPos(HELE hEle,int pos)     //ÉèÖû¬¿éλÖÃ
{
	IsSliderDebug(hEle,__FUNCTION__);
	slider_ *pObj=SLIDER(hEle);

	RECT rect;
	XEle_GetClientRect(hEle,&rect);

	if(pObj->bHorizon)
	{
		int cx=rect.right-rect.left;
		int x=(int)(pos*pObj->minPos);
		RECT rc;
		rc.left=x;
		rc.top=0;
		rc.right=rc.left+pObj->btnWidth;
		rc.bottom=rect.bottom-rect.top;
		if(rc.right>cx)
		{
			rc.right=cx;
			rc.left=rc.right-pObj->btnWidth;
		}
		XEle_SetRect(pObj->hButton,&rc);
	}else
	{
		int cy=rect.bottom-rect.top;
		int y=(int)(pos*pObj->minPos);
		RECT rc=rect;
		rc.bottom=rect.bottom-y;
		rc.top=rc.bottom-pObj->btnWidth;
		if(rc.top<0)
		{
			rc.bottom=pObj->btnWidth;
			rc.top=0;
		}
		XEle_SetRect(pObj->hButton,&rc);
	}	
	SLIDER(hEle)->pos=pos;
	XEle_RedrawEle(hEle);
}
예제 #18
0
파일: button.cpp 프로젝트: BraveStone/xcgui
BOOL CALLBACK Btn_OnEventMouseStay(HELE hEle,HELE hEventEle)
{
	if(hEle==hEventEle)
	{
		if(((ele_*)hEle)->bEnable)
		{
			BUTTON(hEle)->state=STATE_STAY;

			//XTRACE("停留 \n");
//TODO:开始动画
			if(((button_*)hEle)->bAnimation)
			{
				if(FALSE==BUTTON(hEle)->pAnimation->bLoopPlay)
				{
					//XTRACE("开始 顺时针动画 --------\n");
					Btn_StartAnimation(hEle);
				}
			}else
				XEle_RedrawEle(hEle);
		}
	}
	return FALSE;
}
예제 #19
0
BOOL CALLBACK MenuBarBtn_OnLButtonDown(HELE hEle,UINT flags,POINT *pPt)
{
	ele_ *pPar=((ele_*)hEle)->pParentEle;
	if(XC_MENUBAR==pPar->eleType)
	{
		menuBar_ *pMenuBar=(menuBar_*)pPar;
		if(FALSE==pMenuBar->bDown)
		{
			int menuItemCount=XMenu_GetItemCount(((menuBarButon_*)hEle)->hMenu);
			if(menuItemCount>0)
			{
				((button_*)hEle)->state=STATE_DOWN;
				XEle_RedrawEle(hEle);
				pMenuBar->pBtnTop=MENUBARBUTTON(hEle);
				pMenuBar->bDown=TRUE;
				XTRACE("弹出菜单 \n");
				MenuBarBtn_PopupMenu(hEle);
				return TRUE;
			}
		}
	}
	return FALSE;
}
예제 #20
0
BOOL CALLBACK PGrid_OnLButtonDown(HELE hEle,UINT flags,POINT *pPt)
{
	propertyGrid_ *pObj=(propertyGrid_*)hEle;

	if(pPt->x<pObj->spacePoint &&  pPt->x>(pObj->spacePoint-5))
	{
		pObj->bDown=TRUE;
		XEle_SetCapture(hEle);
		SetCursor(LoadCursor(NULL,IDC_SIZEWE));
		return FALSE;
	}
	RECT rcView;
	XSView_GetViewRect(hEle,&rcView);
	if(FALSE==PtInRect(&rcView,*pPt))
		return FALSE;

	POINT pt=*pPt;
	pt.y-=XSView_GetVViewPos(hEle);

	int left=XSView_GetSpacingLeft(hEle)-XSView_GetHViewPos(hEle);

	PGridNode_ *pNode=pObj->pItemList;
	while(pNode)
	{
		if(1==pNode->type)  //组
		{
			PGridGroup_ *pGroup=(PGridGroup_*)pNode->pItem;
			RECT rcBtn={left+pObj->indentBtn,pGroup->posy+pObj->itemHeight/2-5,
				left+pObj->indentBtn+9,pGroup->posy+(pObj->itemHeight/2)+4};
			if(PtInRect(&rcBtn,pt))
			{
				if(pGroup->bExpand)
				{
					pGroup->bExpand=FALSE;
				}else
				{
					pGroup->bExpand=TRUE;
				}
				if(-1!=pObj->selId)
				{
					int oldSel=pObj->selId;
					PGrid_HideEle(hEle);
					//	PGrid_CheckValueChange(hEle,PGrid_GetItem(hEle,oldSel));
					pObj->selId=-1;
					Ele_SendEvent(hEle,XE_PGRID_SELCHANGE,oldSel,pObj->selId);
				}
				PGrid_Adjust(hEle);
				XEle_RedrawEle(hEle);
				return FALSE;
			}else
			{
				if(pGroup->bExpand)
				{
					//子项
					PGridItem_ *pItem=pGroup->pItemList;
					while(pItem)
					{
						if(PGrid_LButtonDownItem(hEle,pItem,&pt))
							return FALSE;
						pItem=pItem->pNext;
					}
				}
			}
		}else //项
		{
			if(PGrid_LButtonDownItem(hEle,(PGridItem_*)pNode->pItem,&pt))
				return FALSE;
		}
		pNode=pNode->pNext;
	}

	//点击在空白处
	if(-1!=pObj->selId)
	{
		int oldSel=pObj->selId;
		PGrid_HideEle(hEle);
		//	PGrid_CheckValueChange(hEle,PGrid_GetItem(hEle,oldSel));
		pObj->selId=-1;
		Ele_SendEvent(hEle,XE_PGRID_SELCHANGE,oldSel,pObj->selId);

	}
	XEle_RedrawEle(hEle);

	return FALSE;
}
예제 #21
0
BOOL CALLBACK SliderBar_OnLButtonDown(HELE hEle,UINT flags,POINT *pPt)
{
	slider_ *pObj=SLIDER(hEle);
	if(!pObj->bDown)
	{
		pObj->bDown=TRUE;
		RECT rect;
		XEle_GetClientRect(hEle,&rect);
		int cx=rect.right-rect.left;
		int cy=rect.bottom-rect.top;
		int btnWidth= ((ele_*)(pObj->hButton))->rect.right-((ele_*)(pObj->hButton))->rect.left;
		int btnHeight= ((ele_*)(pObj->hButton))->rect.bottom-((ele_*)(pObj->hButton))->rect.top;
		if(pObj->bHorizon)
		{
			int x=pPt->x-(btnWidth/2);

			if(x<0)
				x=0;
			else if(x>(cx-btnWidth)) 
				x=cx-btnWidth;

			int pos=(int)( x/pObj->minPos);
			if(pos != pObj->pos)
			{
				pObj->pos=pos;
				RECT rc;
				rc.left=(long)(pos*pObj->minPos);
				rc.top=cy/2-btnHeight/2;
				rc.right=rc.left+btnWidth;
				rc.bottom=rc.top+btnHeight;
				XEle_SetRect(pObj->hButton,&rc);
				XEle_SetCapture(hEle);   //ÉèÖÃÔªËØÊó±ê²¶»ñ

				BUTTON(pObj->hButton)->state=STATE_DOWN;
				Ele_SendEvent(hEle,XE_SLIDER_CHANGE,(WPARAM)pObj->pos,0);
				XEle_RedrawEle(hEle);
			}
		}else
		{
			int height=rect.bottom-pPt->y;
			height=height-(btnHeight/2);

			if(height<0)
				height=0;
			else if(height>(cy-btnHeight)) 
				height=cy-btnHeight;

			int pos=(int)( height/pObj->minPos);
			if(pos != pObj->pos)
			{
				pObj->pos=pos;
				RECT rc=rect;
				rc.left=cx/2-btnWidth/2;
				rc.right=rc.left+btnWidth;
				rc.bottom=rc.bottom-height;
				rc.top=rc.bottom-pObj->btnWidth;
				XEle_SetRect(pObj->hButton,&rc);
				XEle_SetCapture(hEle);   //ÉèÖÃÔªËØÊó±ê²¶»ñ
				Ele_SendEvent(hEle,XE_SLIDER_CHANGE,(WPARAM)pObj->pos,0);
				XEle_RedrawEle(hEle);
			}
		}
	}
	return FALSE;
}
예제 #22
0
파일: WinMain.cpp 프로젝트: ylca/XCGUI
	void SetSelect(int nIndex)
	{
		HELE hBtn = GetLabelBtn(nIndex);
		XBtn_SetCheck(hBtn,TRUE);
		XEle_RedrawEle(m_hEle);
	}
예제 #23
0
파일: WinMain.cpp 프로젝트: ylca/XCGUI
	void SetLabelDirection(tabbar_direction_ nDirection)
	{
		m_Direction = nDirection;

		if (nDirection == tabbar_direction_left ||
			nDirection == tabbar_direction_right)
		{
			XSView_ShowSBarV(m_hSview,TRUE);
			XSView_ShowSBarH(m_hSview,FALSE);
			XSView_ScrollPosV(m_hSview,0);
			XSView_ScrollPosH(m_hSview,0);
			m_bHorizon = FALSE;
		}else
		{
			XSView_ShowSBarV(m_hSview,FALSE);
			XSView_ShowSBarH(m_hSview,TRUE);
			XSView_ScrollPosH(m_hSview,0);
			XSView_ScrollPosV(m_hSview,0);
			m_bHorizon = TRUE;
		}


		int labelSize = GetLableSize();
		if (m_bHorizon)
		{
			ReSizeView(labelSize);
		}else
		{
			ReSizeView(labelSize);
		}




		RECT rtView;
		RECT rtTabBar;
		XEle_GetClientRect(m_hEle,&rtTabBar);
		switch (m_Direction)
		{
		case tabbar_direction_left:
			{
				rtView.left = 0;
				rtView.top  = 0;
				rtView.right = m_ViewWidth;
				rtView.bottom = rtTabBar.bottom;
			}
			break;
		case tabbar_direction_top:
			{
				rtView.left = 0;
				rtView.top  = 0;
				rtView.right = rtTabBar.right;
				rtView.bottom = m_ViewHeight;
			}
			break;
		case tabbar_direction_right:
			{
				rtView.left = rtTabBar.right - m_ViewWidth;
				rtView.top  = 0;
				rtView.right = rtTabBar.right;
				rtView.bottom = rtTabBar.bottom;
			}
			break;
		case tabbar_direction_bottom:
			{
				rtView.top = rtTabBar.bottom - m_ViewHeight;
				rtView.left = 0;
				rtView.right = rtTabBar.right;
				rtView.bottom = rtTabBar.bottom;
			}
			break;
		}
		XEle_SetRect(m_hSview,&rtView);


		 
		ResetBtnPos();
		ResetPagePos();
		XEle_RedrawEle(m_hEle);
	}
예제 #24
0
파일: WinMain.cpp 프로젝트: ylca/XCGUI
	int OnBtnClick(BOOL *pbHandled)
	{
		XAdapterTree_DeleteItem(hAdapter,2);
		XEle_RedrawEle(m_hTree);
		return 0;
	}