半年工作中一些VC编程技术知识点总结

一: CMnue的使用

  1  如何在dolog中加载一个菜单

      首先添加一个CMenu *mu变量

      在 与dolog 初始函数中 OnInitDialog()

      加入  mu = new (CMenu);//  创建一个新的菜单

              mu.LoadMenu(IDR_MENU);// 装载菜单

              SetMenu(mu); //显示菜单

  2  如何对菜单进行操作

    改变 菜单标示

CMenu::ModifyMenu
BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );

nPosition 即需要改变的菜单ID;

nFlags 1: MF_BYCOMMAND 菜单ID; 2:MF_BYPOSITION 指出菜单顺序位置,从0开始

nIDNewItem   1: ID_自身 改变自身菜单

                       2: MF_POPUP 指定下拉式菜单/子菜单 句柄


lpszNewItem :需要更改的内容

如:

 

   3 如何是菜单控件有效无效

 UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable );

其中nEnable

     MF_BYCOMMAND:指定参数给出已存在的菜单命令ID号

     MF_BYPOSITION:指定参数给出已经存在的菜单位置

     MF_DISABLED:使菜单项无效,以便以后不能被选中但不变灰

     MF_GRAYED:使得菜单项无效,并变灰

     MF_ENABLED:使得菜单有效,以便他们能够被选中,并且可以从灰色状态恢复。

注意,任何改变都要用CMenu重绘来显示,用SetMenu

 

二:对话框问题

1)模态 使用创建使用

           

2)非模态,不同于模态,非模态对话框弹出后,依然可以使用父对话框,而模态不行。模态必须结束子对话框才能继续使用父对话框。

            

     非模态对话框使用不用上面方式来创建,一般使用指针来创建

           

3)非模态对话框的销毁

     如何不对非模态的对话框进行重载OnCancel,那么对话框只是被隐藏,并没有被销毁,资源也不会释放。

如何销毁非模态对话框

     1.重载OnCancel并调用 DestroyWindow();函数注意这个函数必须放在最后面,调用后直接进入PostNcDestroy()函数,如果还有资源未释放,则会出错

           

      2.重载PostNcDestroy(),这里对话框将会被真正的销毁。

           

4)如何从子对话框中获取服对话框句柄进行通信

            CWnd::GetParent ();//注意要进行类型强制转换;

  完整型 HWND GetParent( HWND hWnd   // handle to child window);//如果父类对话框不存在则返回NULL

 

三:视窗,对话框大小改动相应

            CWnd::OnSize 

            afx_msg void OnSize( UINT nType, int cx, int cy );

      对应视窗改变,对话框大小改变从而改变控件的大小需要在在该函数内部进行。

 

四:如何将各类型数据直接转换成字符串

      使用Sprintf(char *buf_A,"%f",a);

      a是需要转换的数据,buf_A是转换成字符串的存储地址。

   注意:%f只保留6位有效数据。

           需要保留多位小数点数据则使用%.nf

           n为指定保留的小数点数据位

   注意:和printf的区别。printf只是将数据打印到指定的显示器中。

 

五:将字符串中的数据转化成相应的类型

     第一类 ato?:     需要包含 #include <stdlib.h>        

              double atof( const char *string );//转换成float

              int atoi( const char *string );//转换成int

              __int64 _atoi64( const char *string );

              long atol( const char *string );//转换成long int

        函数将扫描字符串,跳过非数字字符,知道第一个数字或者正负号开始转换遇到非数字字符或者字符串结束符('/0')结束并返回结果

     

     第二类 stirto?       #include <stdlib.h> 

             double strtod( const char *nptr, char **endptr );//转换成double

             double wcstod( const wchar_t *nptr, wchar_t **endptr );//宽字节转换成double   

     

             long strtol( const char *nptr, char **endptr, int base );//long int

             long wcstol( const wchar_t *nptr, wchar_t **endptr, int base );

            使用时只需要定义 char *nptr//需要实体

                                     char *en//只需要指针不需要实体化

             这类型函数将遇到nptr中的第一个数字字符或者正负号转换成相应的数据,遇到非数字字符结束,并将剩余的字符字符串保留在ne中,ne是转换停止的后续字符串,而对long,其中base为位数基础。这样就可以直接转换成16位,8位,32位的数据:

     如 msdn例子

        

 

       该类型函数还有:

          int StrToInt(  LPCTSTR lpSrc );
     

      2)char,int 等转换成CString

         使用

         

内容概要:本研究聚焦于“绿电直连型电氢氨园区”的优化运行,提出一种直接利用绿色电力驱动制氢与合成氨的综合能源系统架构。通过构建包含风/光发电、电解水制氢、氢气储存、合成氨反应及电能直供等关键环节的系统模型,研究旨在实现能源的高效转化与梯级利用,降低对外部电网依赖,提升园区能源自洽率与经济性。研究综合运用Matlab与Python工具进行建模与仿真,结合实际气象与负荷数据,对系统在不同工况下的运行策略、能量流动、设备容量配置及经济技术指标进行深入分析与优化,并形成完整的Word论文文档,为新型零碳产业园区的规划与建设提供了理论依据和技术支撑。; 适合人群:具备新能源、电力系统、化工或综合能源系统背景的科研人员,以及从事园区规划、能源管理、低碳技术开发的工程技术人员。; 使用场景及目标:①研究绿电如何高效耦合至化工生产流程,实现“电-氢-氨”多能互补;②掌握综合能源系统(IES)的建模、仿真与优化方法,特别是多时间尺度下的运行调度策略;③为撰写高水平学术论文或完成相关课题研究积累数据、代码与写作模板。; 阅读建议:此资源包含代码、数据和完整论文,建议使用者先通读Word论文以理解整体框架与理论基础,再结合Matlab/Python代码进行复现与调试,最后可基于提供的数据和模型进行二次开发,以深化对绿电综合利用技术的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值