vc学习简单笔记 (2)-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3977004
  • 博文数量: 536
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(536)

文章存档

2024年(3)

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(252)

2006年(73)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: c/c

2008-07-17 14:31:37

我的学习环境:winxp visual c 6.0
本来应该昨天写这东西的,遇到个问题找了好长时间,今天才解决!感觉现在学习vc有点小眉目了,找了一些小的技巧,继续努力哦,还有好多东西没有完成!路漫漫,坚持!

=============================
怎么将cstring类型转换为:lptstr

csdn上有一个这样的贴:
但我测试后只有这样好用:
    cstring str;
    // ... other code for get str values

    // add a new node0
    tvinsertstruct  tvinsert;  

    tvinsert.hparent        = null;  
    tvinsert.hinsertafter   = null;  
    tvinsert.item.mask        = tvif_text;
    tvinsert.item.iimage    = idb_snapetcl_node0 - idb_base;
    tvinsert.item.iselectedimage = tvinsert.item.iimage;
    tvinsert.item.psztext    = str.getbuffer(str.getlength());
    gettreectrl().insertitem(&tvinsert);
    str.releasebuffer();

=============================
string table中的内容怎么使用:

    如果你使用sdk方式编程,可以使用loadstring()函数,其中的id参数就是资源中的代码。
    如果使用mfc方式编程,可以使用cstring::loadstring()函数,它的参数就是资源中的代码

=============================
ctreectrl上添加图标:
看到这么用的:
        ctreectrl& cthistree = gettreectrl();

        // load bitmaps for drive types & desktop - ten images
        cbitmap bitmap;
        m_pimagelist = new cimagelist();
        // 16x16 pixels, 8 of them
        m_pimagelist->create(16, 16, true, 8, 4);
/*
#define idb_remove                      200
#define idb_fixed                       201
#define idb_remote                      202
#define idb_cd                          203
#define idb_desktop                     204
#define idb_foldcls                     205
#define idb_foldopen                    206
#define idb_doc                         207
*/
        // the 8 images have conseq resource numbers
        //    see resource.h
        for( int i = idb_remove; i <= idb_doc; i )  
        {
            bitmap.loadbitmap( i );
            m_pimagelist->add( &bitmap, (colorref)0xffffff);
            bitmap.deleteobject();
        }
        cthistree.setimagelist( m_pimagelist, tvsil_normal );

    tv_insertstruct    strinsert;

    // must use a selectedimage even if same
    strinsert.item.mask = tvif_text |
                            tvif_image |
                            tvif_selectedimage;

    // a root item - so parent is null
    strinsert.hparent = null;
    // index of the image in the list
    strinsert.item.iimage = idb_desktop - idb_remove;
    strinsert.item.iselectedimage = strinsert.item.iimage;
    // force to "desktop" - the real explorer uses the
    //    registry-based items (like "computer")
    strinsert.item.psztext = (lpstr)"desktop";
    htreeitem hdesktop = cthistree.insertitem(&strinsert);

奇怪的是到我这
    strinsert.item.iimage = idb_desktop - idb_remove;
    strinsert.item.iselectedimage = strinsert.item.iimage;
怎么用就是不起作用,没办法用setitemimage()了

理解了原来哪个cimagelist::create中16, 16是在资源管理中的一个个象素点;16,16就是16x16个象素的小图标了。

=========================
vc中的输入提示好就是好,用习惯了,突然不用还不知道怎么写代码了。目前发现有一点感觉不爽,如str.loadstring()的输入会自动提示:(uint nid),但是吧,按照编码规范上来说象()这个符号一般最好是成对输入的所以就以下子输入(),但结果提示就没有了。

好可惜,不懂的时候还得改变自己习惯的编码规范。

=========================
vc debug输出显示技巧:

看来自己多半会选择单步debug和trace输出(用在需要大量输出的时候比较合适)了,再就是messagebox()了。

=========================
自定义消息的实现
自己实践了,但总出问题最后找到了,错误的把:
on_message()写成on_command()了。

发送消息为:afxgetapp()->m_pmainwnd->postmessage(wm_show_tabview_monitor, 0, 0);

注意:对某个窗口发送消息前一定要找到该窗口的句柄。同一个消息可以发送到不同的窗口,将会根据自己的设置做不同的处理。最好是子窗口可以给父窗口发送消息,父窗口可以给子窗口发送消息,但子窗口间最好不要来回发送消息。对所有窗口的句柄管理也得多注意,父窗口是可以知道所有子窗口的句柄的,但一个子窗口是比较难知道另外一个子窗口句柄的。

消息多容易搞糊涂,注意自己一定要理清顺序。
阅读(2417) | 评论(0) | 转发(0) |
0

上一篇:vc学习简单笔记 (1)

下一篇:it的小说

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图