非标题栏窗体拖动问题
要想用鼠标点击窗体任意处拖动窗体,以前使用的是截取窗体消息接收,欺骗窗体的Client区域为Caption区域,但是这样只是对单个Form有用, 如何能够象Winnap一样可以实现鼠标点击,程序的所有的窗体一齐无抖动拖动(在拖动窗口显示其内容前提下),敬请指教。
不要使用Timer组件,效果太差。
Form1: TForm1;
oldx,oldy:integer;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssLeft in Shift then
begin
Left:=Left+(x-oldx);
Top:=top+(y-oldy);
end;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
oldx:=x;
oldy:=Y;
end;
当鼠标移动到按钮上时设置鼠标指针形状
变量:
HCURSOR m_hButtonCursor;
重载函数:
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT msg);
函数实现:
BOOL CMyDialog::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT msg) { CString sClassName; ::GetClassName(pWnd->GetSafeHwnd(),sClassName.GetBuffer(80),80); if (sClassName=="Button" && m_hButtonCursor) { ::SetCursor(m_hButtonCursor); return TRUE; } return CDialog::OnSetCursor(pWnd, nHitTest, msg); }
http://www.diybl.com/course/3_program/c++/cppsl/2008712/132903.html
VC中如何实现输出文字方向改变?比如文字侧着输出?请高手指点。
用CFont的CreateFont建立这种字体,详细的看MSDN中函数的参数,然后TextOut就行了
楼上说的没错。CreateFont()中的参数nEscapement定义字体标注行的逆时针方向的旋转角度(以1/10度为单位),当标注行进行逆时针旋转时,字体页旋转同样的角度。
font1.CreateFont(50,0,-900,0,600,FALSE,FALSE,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_MODERN,"楷体 _GB2312");