窗体

delphi实现圆角窗体[转]

匿名 (未验证) 提交于 2019-12-02 23:57:01
procedure TForm1.FormCreate(Sender: TObject); var hr :thandle; begin hr:=createroundrectrgn(1,1,width-2,height-2,5,5); setwindowrgn(handle,hr,true); end; procedure TForm1.FormPaint(Sender: TObject); var DC: HDC; Pen: HPen; OldPen: HPen; OldBrush: HBrush; begin DC := GetWindowDC(Handle); Pen := CreatePen(PS_SOLID, 1, clGray); OldPen := SelectObject(DC, Pen); //载入自定义的画笔,保存原画笔 OldBrush := SelectObject(DC, GetStockObject(NULL_BRUSH));//载入空画刷,保存原画刷 RoundRect(DC, 0, 0, Width-1, Height-1, 6, 6); //画边框 SelectObject(DC,OldBrush);//载入原画刷 SelectObject(DC,OldPen); // 载入原画笔 DeleteObject(Pen); ReleaseDC

QT动态布局界面

匿名 (未验证) 提交于 2019-12-02 23:56:01
Qt动态布局界面,我的需要将原来的 界面删除然后重新布局,按照官方和网上的说法,首先是删除之前的布局 (注:m_pToolWidget是我的界面的名称) if (m_pToolWidget->layout() != nullptr) //这个很重要,如果不让parent为null的话,界面上面的按钮或者其他的空间可能还会显示 //因为我的布局也是动态创建的,所以我这边将布局也delete,之前我用的是deletelater,结果发现界面在第二次才会出现。 delete和deletelater的区别 众所周知delete是C++和QT共有的一个操作符即时使用实时就析构删除了,而QT里的deletelater的原理是:QObject::deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event之后才会销毁对象。 这样做的好处是可以在这些延迟删除的时间内完成一些操作,坏处就是内存释放会不及时。 应用例子:父窗体的子窗体在focusoutevent时deletelater();然后在主窗体绑定信号子窗体的destroy()信号和父窗体的槽函数 然后在槽函数中象父窗体调用父窗体的接口函数向父窗体发送子窗体的文本text(); 来源:51CTO 作者: 搁浅的渔 链接:https://blog.csdn.net/qq

C#Windows Forms (1)--xdd

匿名 (未验证) 提交于 2019-12-02 23:52:01
1.更换窗体图标 方法:单击窗体,更改icon属性。 2.调整窗体打开时默认位置 方法:单击窗体,更改StartPotion属性。 3.修改窗体大小 方法:单击窗体,更改Size属性。 4.设置窗体的背景图片 方法:单击窗体,更改BackgroundImage属性。 5.打开新窗体 Form2 frm2 = new Form2(); frm2.Show(); this.Hide(); 6.单击窗体事件Click 首先在窗体属性事件中双击Click MessageBox.Show("已经单击了窗体");//弹出提示框 例如:窗体在打开时,弹出提示框,询问是否查看窗体 if (MessageBox.Show("是否查看窗体?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { } 8.窗口关闭事件FormClosing DialogResult dr = MessageBox.Show("是否确定要关闭窗体", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);//创建了一个对话框 if (dr == DialogResult.Yes) { e.Cancel = false;//如果单击“是”,则关闭窗体 }

C# 窗口全屏、置顶、获取焦点

匿名 (未验证) 提交于 2019-12-02 23:43:01
很简单的几行代码 this.FormBorderStyle = FormBorderStyle.None; //设置窗体为无边框样式 this.WindowState = FormWindowState.Maximized; //最大化窗体 this.TopMost = true; //设置窗体置顶 始终获取焦点 //调用API [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); //获得本窗体的句柄 [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")] public static extern bool SetForegroundWindow(IntPtr hWnd);//设置此窗体为活动窗体 //定义变量,句柄类型 public IntPtr Handle1; public Form1() { InitializeComponent()

delphi10.3编译的64bit程序窗体变小

匿名 (未验证) 提交于 2019-12-02 23:43:01
最近搞了个delphi10.3来玩,把一个旧的程序改到64bit下编译,成功后,发现两个问题: 画面和图片变小了。 这个可以调整参数:Tools-Options-Application-Manifest-DPI Awarness,被它设置为“Per Monitor V2”了,改为“none” 任务栏上的图标是白色空图标。 还没找到原因。参数Tools-Options-Application-Icons-icon已经设置了。 文章来源: https://blog.csdn.net/acrodelphi/article/details/92003380

Winform窗体验证登陆

匿名 (未验证) 提交于 2019-12-02 23:42:01
用户名,密码尽量不要在BLL,UIL判断,尽可能的在储存过程判断,通过返回的值不同,进行判断,这样提高安全性 SQL Server储存过程代码: BEGIN if(exists ( select User_ID from SYS_User where LTRIM(RTRIM(User_Name))=LTRIM(RTRIM(@User_Name)) )) BEGIN if(exists ( select User_ID from SYS_User where LTRIM(RTRIM(User_Name))=LTRIM(RTRIM(@User_Name)) and LTRIM(RTRIM(User_PassWord))=LTRIM(RTRIM(@User_PassWord)))) BEGIN if (exists(select User_ID from SYS_User where LTRIM(RTRIM(User_Name))=LTRIM(RTRIM(@User_Name)) and LTRIM(RTRIM(User_PassWord))=LTRIM(RTRIM(@User_PassWord)) and UserType_ID=@UserType_ID)) BEGIN select User_Name,UserType_ID from SYS_User where LTRIM