vc笔记3--中英文字符截取

 ((CEdit*)GetDialogItem(IDC_EDIT))->SetLimitText(10);   //在initialDialog函数中处理

 

LimitText 设置个数,中英文相同个数
SetLimitText 设置字节数。

判断一个文件夹是否存在 DirExists(sPath);


Release模式下调试:
Project   setting->c/c++   General页   Optimizations中选择Disable(debug)   Debug   Info中选择Program   database   or   program   database   for   edit   and   conitnue  
  Project setting->Link---Debug----debug  info选中


#define WS_OVERLAPPED       0x00000000L
#define WS_POPUP            0x80000000L
#define WS_CHILD            0x40000000L
overlapped窗口就是有标题,系统菜单,最小最大化按钮和可调整大小边框的窗口

由于WS_OVERLAPPED为0,那我们是不是可以把WS_OVERLAPPEDWINDOW定义中的WS_OVERLAPPED拿掉呢?那是肯定的,那也就是说WS_OVERLAPPED什么都不是!


所有者窗口,就是Owner window,由于子窗口一定没有Owner,因此Owner window是对popup和Overlapped而言的


Quellcodedateien

 

1)(CMainFrame*)AfxGetMainWnd()  //AfxGetMainWnd() 得到主程序的指针!~~

2)GetDlgItem(IDC_EDIT3)   //GetDlgItem()得到控件指针!~~

3)GetDlgItem(IDC_ENGLISH)->SetFocus();  //SetFocus()光标所在区!~~~

4)SetGlgItemText(dlg,IDC_WIDTH,"");设置控件的名称!~~

5)MessageBox(

 LPCTSTR lpszText,//消息字符串

 LPCTSTR lpszCaption=NULL,//消息框标题

 UINT nType=MB_OK  //消息框风格

 );


测试:
1.参数传递默认为NULL(如:fun(int a,int b=0))
2.焦点问题:有空单独调试一下,getclientrect,getwindowsrect


  UpdateData(true);//将控件的值读到变量。  
  UpdateData(false);//将变量的值显示出来到控件
 
 
 汉字由2个字节组成  
  它的高字节和低字节都可以表示为16进制的0x??  
  0x??   的范围是0x80~0xFF  
   
  所以你只需要检测edit中的某个字符是否大于0x80,则紧随的下一个字符也是汉字中的一部分。
 
  转换为UNICODE字符串后wstrlen
  CharNext()  
  可以返回下一个完整的字符,不论是中文还是英文
 
 
  方法一,使用MultiByteToWideChar将ANSI字符转换成Unicode字符,使用WideCharToMultiByte将Unicode字符转换成ANSI字符。

  方法二,使用“_T”将ANSI转换成“一般”类型字符串,使用“L”将ANSI转换成Unicode,而在托管C++环境中还可使用S将ANSI字符串转换成String*对象。例如:

TCHAR tstr[] = _T("this is a test");
wchar_t wszStr[] = L"This is a test";
String* str = S”This is a test”;

 

UpdateData(TRUE)
UpdateData(FALSE)
Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).s

 

 

//2009-11-17更新

IP控件
 char   *inet_ntoa   (struct   in_addr   in   );  
方法一

    CString strIP="192.168.1.184";
    DWORD dwAddress= ntohl( inet_addr(strIP));
    m_IPCtrl.SetAddress(dwAddress); // m_IPCtrl 为IP 控件对象


方法二

    直接用SetWindowText(),获取采用GetWindowText()就OK了!
    CString  strIP=  "192.168.1.163  "; 
    m_ip.SetWindowText(strIP);  //m_ip为IP控件的变量
 
IP控件在vc6里面有一个bug
 afx_msg void OnChangeEditIP();
 ON_EN_CHANGE(IDC_IPADDRESS,OnChangeEditIP)
 
 
 
(1)LockCount   是当前拥有   CRITICAL_SECTION   的线程调用   EnterCriticalSection   的次数  
 (2)SpinCount   是当线程访问   CRITICAL_SECTION   遇到争用时,  
 (3)如果仍得不到   CRITICAL_SECTION   的所有权,线程将进入信号量等待  
     
  
  (1) LockCount应该是线程已经尝试访问资源的次数,而RecursionCount才是线程调用EnterCriticalSection的次数吧。  
  (2)“当线程试图访问正在被另一个线程占用的资源时时,循环尝试再次取得该资源的最大允许次数”  
  (3)“线程将进入信号量等待”,信号量等待?对吗?是转入内核方式等待吧?
 
 
  CFtpConnection运用问题
其基本步骤如下:
1、实现建立CInternetSession对象;
2、使用CInternetSession::GetFtpConnection连接到FTP服务器;
3、使用上一步返回的CFtpConnection对象的CFtpConnection::SetCurrentDirectory设置当前目录;
4、使用CFtpConnection::OpenFile打开文件,在打开文件的同时也就设定了传输模式是二进制还是文本方式;
5、利用上一步得到的CInternetFile的CInternetFile::Write向服务器写数据,通常你要在写数据前将本地文件读入缓冲区;
6、使用CInternetException来处理可能遇到的错误;
7、当上传完成后,释放CInternetSession对象。


long %ld;
unsigned long %ul;

CFile   file;   
if  (file.m_hFile!=CFile::hFileNull)  
{
 //已经close了  
}
 
 if(f.m_hFile   ==   CFile::hFileNull)
{  
    //表示文件已经被关闭了 
}  


sscanf(sInput," %[.,0-9]",szTmp);//查看sscanf
//背包问题
有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。

(strcmp(m_itemSolutionList.at(i)->sItemName,m_itemList.at(k)->sItemName)==0)


release 调试
Project   setting->c/c++   General页   Optimizations中选择Disable(debug)   Debug   Info中选择Program   database   or   program   database   for   edit   and   conitnue  
  Project   setting->Link   Debug页   debug   info选中
 
Xtrace


步骤如下:
    1、在Project Settings里选Settings For为All Configurations。
    2、在C/C++标签中,Debug info 选 Program Database。
    3、在Link 标签中,Category选 Debug,选中Debug info 复选框和Microsoft format。
    现在就可以像在调试版本中那样设置断点进行测试了,由于代码优化,有些变量观察不到,行的运行顺序可能也会不同。
    说明:ASSERT宏在发行版本中不起作用,而应该用VERIFY来进行发行版的调试。如果发行版本运行有问题,可以先禁止所有代码优化再进行调试。
 
XTRACE

如果在发行程序时,想去掉这些附加的代码,无须删除XTRACE和#include"xTrace.h"语句,只需要在工程设置中定义NO_XTRACE宏即可,这样xTrace.h文件则犹如一个空文件一般,可执行程序中便没有任何附加代码了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值