- 博客(55)
- 问答 (1)
- 收藏
- 关注
原创 C# The calling thread must be STA, because many UI components require this
1 调用的线程必须是sta,因为所有的ui组件都要求这个。
2022-11-11 14:03:47
808
原创 C#使用外部类的方式加载xaml
但是page的数据有两条 ,通过这种方式得到的数据只有一条, 百思不得其解,后来换成上面这种加载xaml的方式后解决。//加载page的页面。3 新建 mainwindow 的vm vm_MainConfigWindow。//声明page的类。1 新建类 MainPageManage。p.函数 // 调用函数。2 声明xaml.cs的对象。
2022-10-24 16:10:06
796
原创 c#利用resx manager 切换中英文
3新建文件夹langs在下面新建resourcelangs资源。4打开下载的工具左键选择刚刚新建的资源然后新增键如下所示。1去官网下载resxmanager然后安装到vs上。2新增语言简体中文。
2022-07-20 09:56:14
2022
原创 c#通过frame 和 page 切换页面
背景 需要给一个项目添加licence功能 需要做个licence 页 然后mainwindow里面切换主页和登录页 为此 需要将 页面分开来实现思路 在 mainwindow 中创建一个 frame 然后在对应的 cs 依据 licence 来判断是否加载主页1 在 mainwindow 中使用 frame2 创建page 添加现有项 选择page 例如添加了 MainHolePage.xaml3 在mainwindow 中指定显示的页ps:1 添加到page之后发现keydown事件不能触发
2022-06-16 15:39:20
7514
原创 通过 iValueConverter 给datagrid 的背景颜色 动态赋值
1 创建一个类2 创建一个 ColorConverter 类 继承自 IValueConverter 类3 在 xaml 文件中写:4 在 里写:5 在主函数中写:6 在 mainwindow 写:7 效果图:
2022-06-13 16:14:37
250
原创 wpf dataGrid 实现单行某个数据变化 ui 界面随之响应
背景介绍:一行数据 比如 有 姓名 年龄 id 号 当 id 变化 更新 id 当 年龄变化 更新年龄 以 id 作为编号 如果 id 变化了则新增 否则更改2 封装 model 类3 封装 接口类 ITest4 定义子类5 定义 viewModel 类6 xaml......
2022-06-06 16:33:05
868
原创 c#利用 TCP 协议建立连接
背景:有一个部署在 树莓派 上的一个服务器 需要用 windows 系统与其建立连接 数据格式为 json 格式 所以本文只有客户端的代码:1 声明一个全局变量Socket socket = null;2 在 mainWindow 中写:IPAddress ipadr = IPAddress.Parse("192.168.2.42"); //---ip地址为服务端地址socket = new Socket(AddressFamily.InterNetwork,SocketType.
2022-05-22 15:26:57
1978
2
原创 c# wpf 从设备读取 rfid 数据
1 本来想从 keyup 中获取数据 结果发现获取的数据很奇怪 所以选择了从文本框获取数据 就是需要每次都将输入法设置为英文的 我创建了一个函数 用于获得数据public string getValue(){ string s = textBox1.Text; if(s.Length == 40) { epc = s.Substring(0,24); System.Diagnostics.Debug.Writ
2022-05-19 09:55:04
923
原创 c# winform从设备接收rfid数据并处理步骤
1 给当前的对话框添加 keyup 事件 创建 datagridview 控件为了使得 keyup 事件生效 主对话框的 keypreview 必须设为 true为了使得软件不把 datagridview 的文本框 当做输入对象 , datagridview 的属性 allowuseradddata 设为 FALSEprivate void Form1_KeyUp(object sender, KeyEventArgs e) //----------键盘弹起事件 根据enter获得数据...
2022-05-13 14:34:52
1946
原创 C++实现nfc数据还原
#include "stdafx.h"#include <iostream>#include <string>using namespace std;void hexToBinary(int a);void dataExchange(int a[]);int datas[8];int main(){ hexToBinary(0xd1); int a[] = { 0xd1,0x01,0x0F,0x54,0x02,0x65,0x6E, 0x68,0x6..
2022-05-09 17:27:58
845
原创 c#实现nfc数据还原
1 需要将16进制字符串转成10进制字节数组private static byte[] strToHexByte(string hexString) //----------------将16进制的字符串转成10进制的字节数组{ byte[] returnBytes = null; if(!string.IsNullOrEmpty(hexString)) //----------代表有效 { hexString.Replace(" ", "")
2022-05-09 17:21:49
507
原创 c#序列化对象与反序列化
1 反序列化函数定义public object deSerialize(string filePath, Type type){ object t = null; if (File.Exists(filePath)) { using (StreamReader reader = new StreamReader(filePath)) { System.Xml.Serialization.XmlSeri
2022-05-09 16:31:45
309
原创 c#的简单用法
1 将字符串转成int型 普通的 仅限数字型的 int temp = int.Parse(hex.Substring(index, 2)); //------------将字符串转为整数 01为012 将字符串转成int型的 字符串是16进制的数字 如0a int temp = int.Parse(hex.Substring(index, 2),System.Globalization.NumberStyles.HexNumber);如 0a 为 103 将 16 进制形式的字符
2022-05-07 11:28:11
372
原创 ndef 详解
ndef 全称 nfc data exchange format 即 nfc 数据交换格式组成:ndef message 由 多个 nfc record 组成1 nfc record 包括 nfc record header(数据头)和 nfc record payload(数据荷载)两部分2 nfc record header其中第一个字节最重要 包含 MB ME CF SR IL TNF2.1 MB(message begin)消息开始的地方 一般用于开头 且置12.2.
2022-04-13 09:54:23
10230
4
原创 mfc加载icon图标自然并添加单击响应事件
1. 给创建了的项目添加 picture conrol 控件2. 控件的属性 type 设为 icon3. 在属性 image 里面填上之前添加的 icon 图标的控件名4. 这时我们可以看到图标已经显示出来了。------------------------------------这是一条分界线--------------------------------添加 鼠标左键单击 响应事件:1. 找到类向导 添加消息 PreTranslateMessage()2
2022-01-13 11:48:20
788
1
原创 vs如何连接带密码的access
背景:vs2015 + access 2013安全起见,我用独占方式打开access.mdb,然后设置密码,但是我的vs就连不上了,找了很多办法,终于解决了。1. 打开 vs2015 找到 服务器资源管理器,右击,修改连接选择高级我们把 password 后面的密码删掉,在这里填写密码,然后单击测试连接连接的语句:原来是try{ m_con.CreateInstance(_uuidof(Connection)); m_con->Open(..
2021-11-20 12:02:18
906
原创 mfc把list control的数据导入到excel
环境:Vs2015 office 20131. 找到类视图,右击类名,添加 - > 类 - > MFC - > TypeLib 中的 MFC 类 - > 添加2. 然后出现3. 在下拉列表框选择 excel 在接口栏找到对应的类,分别添加4. 这5个类,然后生成的5个类的头文件的这句话都注释掉#import "C:\\Program Files (x86)\\Microsoft Office\\OFFICE12\\EXCEL.EXE" no_n...
2021-11-12 09:50:49
2856
1
原创 关于单线程那些事
环境:VS2015 + mfc背景:是这样的,因为公司需要,我引用了第三方的 ActiveX 控件 MsComm,添加变量为 m_com,用于 Rs232 通信,我写了一个线程,只要通信成功,就一直发送消息,我是没有断开连接的,当我关闭对话框的时候,出问题了,打断点调试,最后指向ASSERT(m_pCtrlSite != NULL)这里,那时因为对话框被销毁了,但是线程一直在执行,从而调用了被销毁的 m_com,导致报错。于是我将源代码修改如下:do{ CString str; .
2021-10-29 11:52:40
165
原创 用vs2015+mfc实现菜单切换
1. 创建登录对话框,在默认的确定按钮事件中写如下代码:void LoginDlg::OnBnClickedOk(){ // TODO: 在此添加控件通知处理程序代码 CString user, pwd; m_user.GetWindowTextW(user); m_pwd.GetWindowTextW(pwd); if (user.IsEmpty() || pwd.IsEmpty()) { MessageBox(_T("请不要将任何一者置空!")); return; ..
2021-10-28 11:48:57
545
原创 用mfc编写项目应注意的事项
1. 不常用的对话框影藏在菜单栏的话,那么当显示时用 showWindow 替代 doModal ,因为调用domodal 的话,那么会自动调用初始化函数,这就导致一个问题,之前在这个隐藏的对话框里保存的一切,当你再次弹出这个对话框的时候,所有的都会被初始化2. 对于隐藏对话框,别的对话框的操作若是基于这个对话框的话,那么判断条件,用自定义变量 代替 编辑框的值 。因为,隐藏的对话框没有被打开,那么编辑框的值就不会被赋值,别的对话框得到的编辑框的值是没有定义的,从而导致报错,这时我们可以 自定义一个..
2021-10-23 17:16:55
164
原创 mfc控件设置颜色(超全)
环境:vs2015 unicode环境下1.mfc Button Control (设置背景颜色)在初始化函数中添加如下:m_btn1.m_bDontUseWinXPTheme = TRUE;m_btn1.m_bDrawFocus = false;m_btn1.SetFaceColor(RGB(245,222,179));m_btn1为控件变量名,缺点:按钮显示不太美观,如下所示:2. static text(text control) (设置字体颜色)在资源视图...
2021-10-08 16:25:02
9940
原创 vs2015使用ado方式对access进行增删改查
1. 在 stdafx.h 的头文件后面添加#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")第一次添加可能会冒红色的波浪线,记得退出vs,再次重启 vs 就好了。2 . 在 XXXDlg.h 的文件中添加 如下:_ConnectionPtr m_pCon;_RecordsetPtr m_pReSet;_CommandPtr...
2021-07-05 14:08:15
764
原创 C++实现已知圆的任意三点求圆心和半径
原理:圆上的任意两点的连线称作弦,弦的中垂线必过圆心,取三点组成的两条弦的中垂线的交点,即为圆心,再通过圆心求半径.其中三点坐标为 (dx1,dy1) (dx2,dy2) (dx3,dy3)h1 h2 是弦的的中垂线的 斜率 x y 为圆心坐标 radius 为半径double midx1,midy1,midx2,midy2;double h1,h2;//求前两个点的中心点midx1 = (dx1 + dx2) / 2;midy1 = (dy1 + dy2) /...
2021-05-06 15:51:56
4989
2
转载 mfc实现加载jpg图片
1在XXXDlg.h 中加入iPicure *m_picture;OLE_XSIZE_HIMETRIC m_width;OLE_YSIZE_HIMETRIC m_height;BOOL m_IsShow();2.在 XXXDlg.cpp 中的OnPaint() 函数中加入CPaintDC dc(this);CFile m_file("D:\\pic\\4.jpg",CFile::modeRead()); //以读模式打开图片DWORD m_filelen = file.GetLength
2020-12-12 17:16:56
710
转载 实现5*5二维数组 取a数组每个元素的临近元素中间值 赋给b数组
1.给a数组赋值 定义b数组static int[][] a = { {5,85,4,2,68}, {78,82,75,41,14}, {79,47,38,1,47}, {1,2,14,65,13}, {96,87,32,14,21}, }; static in...
2020-12-12 17:15:33
1030
原创 mfc之静态文本的操作
一:静态文本的操作 1.静态文本字体水平居中 属性->Align Text ->设为 center 2.静态文本字体垂直居中 属性->center image->设为true 3.静态文本设置字体样式 i:在XXXDlg.h 添加CFont font;ii:在XXXDlg.cpp 添加font.CreatePointFont(200,_T("宋体"),NULL); //字体大小 样式GetDlgItem(IDC_ST...
2020-12-12 17:14:08
923
原创 mfc注意事项(2)
事项1:申明了主对话框的指针后 在主对话框初始化函数中使用该指针时记得把 Pmain = this 写在这个语句前面同理 若是创建了子对话框 子对话框中调用了 Pmain指针的话 那么把 Pmain = this写在创建子对话框语句前面若果不这样 那么别处调用的 Pmain 则会为NULL。...
2020-12-12 14:39:35
467
原创 mfc该注意的事项
事项1:尽量不要跨对话框去操作静态文本 为其赋值 否则将导致错误即如下写法Pmain->a_page.GetDlgItem(IDC_STATIC)->SetWindowTextW(s);Pmain 主对话框指针 a_page 子对话框的对象若实在需要将某个静态文本当作公共操作的对象 则将其放在主对话框 通过Pmain 来操作Pmain->GetDlgItem(IDC_STATIC)->SetWindowTextW(s);...
2020-11-11 15:47:30
1010
7
原创 list control 获得选中文本的索引
POSITION pos = m_list.GetFirstSelectedItemPosition();int row = m_list.GetNextSelectedItem(pos);默认从0开始
2020-11-10 14:43:40
198
原创 vs2010使用api方式连接mysql对数据进行操作
1.在 XXXDlg.h 文件中添加#include “mysql.h"#include <WinSock.h>#pragma comment(lib,"libmysql.lib")//声明变量MYSQL mysql;MYSQL_RES *res;MYSQL_ROW column;//函数声明void Conndata();void FreeData();void QueryAll();2.在 XXXDlg.cpp 文件中添加void Dlg6::Connd.
2020-11-10 14:31:58
234
原创 C++获取系统时间
添加代码如下CTime time = CTime::GetCurrentTime();CString str = ctime.Format("%Y-%m_%d %H:%M:%S");m_flist1.AddString(str); //m_flist1 是控件变量名
2020-11-09 11:49:28
162
原创 mfc实现鼠标滑动显示提示信息
1.在 XXXdlg.h 文件添加//鼠标移动上方显示信息CToolTipCtrl m_tip;2.在 XXXdlg.cpp 文件 添加//鼠标移动上方显示信息EnableToolTips(TRUE);m_tip.Create(this);m_tip.Activate(TRUE);CWnd* pw = GetDlgItem(IDC_BUTTON4);m_tip.AddTool(pw,_T("显示模式"));3. 在 资源视图 的 类向导中 为 其添加 虚函数Pr...
2020-11-02 18:27:59
547
原创 tab control 相关操作
前要:以m_ 开头的都是控件变量名称1.tab control 标题栏插入数据m_tab.InsertItem(0,"名字");2.准备工作.h 文件CGTSDlg m_page1;CRect crect; m_page1.Create(GTSDlg,&m_tab); //在m_tab 位置创建对话框m_tab.GetClientRect(crect); //得到当前客户端区域crect.top += 22; //不写会盖住标题栏m_page1.MoveWi
2020-09-29 14:48:00
228
原创 Accelerated C++ 第1章答案
1-0:编译 运行并测试本章中的程序#include <iostream>using namespace std;int main(){ cout << "请输入你的名字" << endl; string name; cin >> name; cout << "hello:" << name << endl;}#include <iostream>using namespace st
2020-09-25 14:09:14
364
如何从dll中加载xaml
2022-07-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人