让程序支持拖拽功能

这里主要是三个函数一个消息。三个函数分别是:
[color=#FF0000]VOID DragAcceptFiles(HWND hWnd,BOOL fAccept);
UINT DragQueryFile(HDROP hDrop,UINT iFile,LPTSTR lpszFile,UINT cch);
VOID DragFinish(HDROP hDrop);[/color]

一个消息是:
[color=#FF0000]WM_DROPFILES
SendMessage( hWndControl, WM_DROPFILES, wParam,  lParam ); [/color]
其中:
wParam的值为(HDROP),而lParam的值则必须为0! 继续阅读“让程序支持拖拽功能”

#pragma用法大全[转载]

[color=#FF0000]文章有些长,里面提到的知识点,有用过的,但太多数还没有接触过!转载到这里,以备参考![/color]
转载自:[url=http://www.ccg.org.cn/bbs/viewthread.php?tid=984&highlight=]http://www.ccg.org.cn/bbs/viewthread.php?tid=984&highlight=[/url]

#pragma用法大全
C和C++的每个实现对它的主机或操作系统都支持一些独有的特征。
例如, 某些程序须对存放数据的存储器区域进行精确的控制,或必须控制特定函数接受参量的方式。
#pragma指令对每个编译器给出了一个方法,在保持与C和C+ +语言完全兼容的情况下,给出主机或操作系统专有的特征。
依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 继续阅读“#pragma用法大全[转载]”

一个螺旋排列的数组实现

要求如下:
给定一个2维数组Array[row][col],让其呈螺纹状排列。
如:
数组:Array[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
让其重新排序如下:


E:\Programming\c_cpp>HelixArray
请输入螺旋数组的维数(2维:行--列):4 4
螺旋数组如下:
1       2       3       4
12      13      14      5
11      16      15      6
10      9       8       7

继续阅读“一个螺旋排列的数组实现”

C++学习序章:开篇说明及第一个程序(helloworld)

1、开篇说明:
本系列只是我个人对VC/C/C++学习的一个回顾,用以加深自己的印象,所讲述的只是自己的一些理解以及自己在写东西时的一些所得。可能是东一粼西一爪的,让你不着边际!但主体还是从易到能的一个过程,不过最好还是希望大家结合一本教材从头来过的好,呵呵…………
配合的教材,大家可以到网上搜索,相信这方面的资料还是很多的。
具体的,我在这里就不推荐了!

2、所需工具:
我用的是VS 2008及DevC++,大家按自己的条件自行选择,因为在讲C/C++时,我多数是在命令下行采用命令来编译的,如本讲的:


cl HelloWorld /EHsc

可能在后期讲到VC的工程时,才会用到IDE环境 继续阅读“C++学习序章:开篇说明及第一个程序(helloworld)”

C++/C一些类型的取值范围

呵呵,时间长了,有些实在是记不住了,就把一些不常用的记在这里吧:


long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615

我的电脑对__int128不支持,这个可能是预留给将来的吧: 继续阅读“C++/C一些类型的取值范围”

C++学习第3讲:复合类型[讲义]

要点:
1、指针
2、数组与字符串

1)指针
  对于类型T,T*是“到T的指针”类型。
  说白了讲,指针里保留的是一个32位的地址值,这个地址指向了一个内存区域,至于如何解释这个内存区域,则是由其类型决定。

  如:char c=’a’;
      char* p=&c;

通过一个完整的示例来看一下: 继续阅读“C++学习第3讲:复合类型[讲义]”

C++学习第2讲:变量的定义与作用域[讲义]

知识点:
1、变量的声明
2、变量的作用域与初始化

1)我们先回忆一下第1课,对C++程序有个基本的了解:
   A、包含所需的头文件
   B、不可缺少的入口函数:main()函数
   C、程序是由语句构成的,在C++里,区分语句的是句尾的“;”分号
   D、程序是用来处理数据的,所以必须定义一些数据
   E、给程序加上必要的注释 继续阅读“C++学习第2讲:变量的定义与作用域[讲义]”