百度首页 | 百度空间
 
文章列表
 
2007年06月03日 星期日 22:19

     总是不知道博客该写成什么样子的好,很久没有到这里来,突然发现该照看一下了,朋友们都说不知道该怎么留言,因为我写的东西他们都不懂,其实没有什么,那些所谓的技术博客,仅仅是我在开发程序的过程中收集到的比较珍贵的资料而已。删掉了Ubuntu的那篇博客,因为对浏览的朋友实在是没有帮助。

     欢欢不在身边,渐渐的开始孤独,没日没夜的学习,然后是睡觉,由于老师和高资历的学长开始准备863项目的申请和烟台会议,我们的CT项目暂时终止,我除了引入ButtonST把控制面板美化了一下,就没有再接触它。

     一直以来,就想在一年级的时候发一篇论文,这个愿望支持着我,终于做出一个小文章,讨论班上的效果不太好,还要继续修改,研究,其实很难。

     考试提前了,6月的结束,就代表着我硕士期间再不会有考试,当然,除了考博。又开始为期末考试努力了,仿佛回到了大学时代,我基本上没有高三的回忆了,其实高三的学生们不知道,理工科大学的学习是比高三辛苦很多的。

     无论如何,还要加油,真正的生活,必须这样走过

类别:默认分类 | 评论(0) | 浏览()
 
2007年05月06日 星期日 16:31

一 关于导数

       1.    链式求导规则永远有效     y=Y(t), t=T(x),      dy/dx=(dy/dt) * (dt/dx),无论多么复杂的Y和T,都可以在求完一次求导(dy/dt)之后,再整体乘以 第二次求导(dt/dx)的结果,(无需分开求),最终得到复式求导的结果,千万不可以因为dy/dt中得到了常数C,就不再将这个常数C乘以dt/dx

      基本求导公式

类别:学习总结 | 评论(0) | 浏览()
 
2007年04月20日 星期五 15:23

一 关于头文件

1. 头文件的嵌入是讲究次序的,不可以颠倒。

2. 有时候嵌入一个头文件还不够。例如向框架CPP中嵌入视图头文件,还需要将文档头文件也嵌入,并且文档头文件在视图头文件之前。

二 关于消息

1.     当在框架和视图里同时对一个菜单项定义了消息处理函数,系统会调用视图的,忽略框架的

三 关于编程框架

1.     C++规定,全局对象的构建比程序进入点(Main,WinMain)要更早。

2.     MainFrame的OnCreate调用OnCreateClient,后者调用CreateView创建出View来。

类别:学习总结 | 评论(1) | 浏览()
 
2007年04月18日 星期三 10:02

访问应用程序的其它类

获得CWinApp:
-在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp
-在其它类中只能用AfxGetApp()

获得CMainFrame:
-在CMinApp中用AfxGetMainWnd()或者m_pMainWnd
-在CChildFrame中可用GetParentFrame()
-在其它类中用AfxGetMainWnd()

获得CChildFrame:
-在CView中用GetParentFrame()
-在CMainFrame中用MDIGetActive()或GetActiveFrame()
-在其它类中用AfxGetMainWnd()->MDIGetActive()或AfxGetMainWnd()->GetActiveFrame()

获得CDocument:
-在CView中用GetDocument()
-在CChildFrame中用GetActiveView()->GetDocument()
-在CMainFrame中用
    -if SDI:GetActiveView()->GetDocument()
    -if MDI:MDIGetActive()->GetActiveView()->GetDocument()
-在其它类中
    -if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()
    -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()

获得CView:
-在CDocument中 POSITION pos = GetFirstViewPosition();GetNextView(pos)
-在CChildFrame中 GetActiveView()
-在CMainFrame中
    -if SDI:GetActiveView()
    -if MDI:MDIGetActive()->GetActiveView()
-在其它类中
    -if SDI:AfxGetMainWnd()->GetActiveView()
    -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()


不过要注意在doc中要取得view的指针C*View要注意类C*View声明的问题,
因为默认情况下,mfc在*View.h中已经包含了*Doc.h,如果在*Doc.h中包含
*View.h,就会引起嵌套包含问题,这样要在*Doc.h中加入 class C*View;
而在*Doc.cpp中加入 #include "*View.h"

//////////////////////////////////////////////////////////////////
其实完全可以在CYourApp中添加各种视或文档的指针,在那些视或文档初
始化的时候将指针传给CYourApp中的对应变量,这样以后不管在哪用上面
指针只需(CYourApp*)AfxGetApp()取其属性变量即可,明了而且清楚更是
方便我一直专门操作的说:)

//////////////////////////////////////////////////////////////////
我先抛块砖,有玉的砸过来!
在何时何地,你都可以通过以下方法精确的得到任何一个对象(Application,DocTemplate,Document,View,Frame)
1。通过AfxGetApp()得到当前的App对象;
2。通过AfxGetMainWnd()得到主窗口;
3。通过CMDIFrameWnd::GetActiveFrame得到当前活动窗口;
4。通过GetNextWindow()遍例所有的子窗口;(如果要得到你想要的子窗口,可以通过特定的成员变量来标志);
5。通过CWinApp::GetFirstDocTemplatePostion()以及CWinApp::GetNextDocTemplate()的组合应用来遍历所有的DocTemplate对象,并且用CDocTemplate::GetDocString()来判断当前得到的文档莫板对象是哪个。
6。通过CDocTemplate::GetFirstDocPosition()以及CDocTemplate的GetNextDoc()组合来遍历所有的该模板的文档对象,并用CDocument::GetDocTemplate()来得到文档模板,用CDocment::GetTitle() 或者GetPathName()来判断当前的文档是哪个。
7。通过CDocuemt的GetFirstViewPositon()以及GetNextView()来遍历视图对象,一般通过访问View的成员变量来区别各个视图;通过CView::GetDocument()来得到文档对象;
8。Frame->View: 通过GetActiveView方法;
9。Frame->Doc:通过GetActiveDocument();
10。View->Frame:GetParentFrame();
11。View->Doc:GetDocuemt()//前面已经说了。
12。Doc->View:前面说了;
13。Doc->Frame:不知道有没有很直接的方法。
MFC应用程序中指针的使用

1) 在View中获得Doc指针
2) 在App中获得MainFrame指针
3) 在View中获得MainFrame指针
4) 获得View(已建立)指针
5) 获得当前文档指针
6) 获得状态栏与工具栏指针
7) 获得状态栏与工具栏变量
8) 在Mainframe获得菜单指针
9) 在任何类中获得应用程序类
10) 从文档类取得视图类的指针(1)
11) 在App中获得文档模板指针
12) 从文档模板获得文档类指针
13) 在文档类中获得文档模板指针
14) 从文档类取得视图类的指针(2)
15) 从一个视图类取得另一视图类的指针

VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与
操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多
问题都能解决。下面文字主要是个人在编程中指针使用的一些体会,说的不当的地
方请指正。一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,
无论是多文档还是单文档,都存在指针获取和操作问题。下面这节内容主要是一般
的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先
一般获得本类(视,文档,对话框都支持)实例指针this,用this的目的,主要可以通
过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的
功能。

1) 在View中获得Doc指针 CYouSDIDoc *pDoc=GetDocument();一个视只能有一个文
档。
2) 在App中获得MainFrame指针
CWinApp 中的 m_pMainWnd变量就是MainFrame的指针
也可以: CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd();
3) 在View中获得MainFrame指针 CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd;
4) 获得View(已建立)指针 CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd;
CyouView *pView=(CyouView *)pMain->GetActiveView();
5) 获得当前文档指针 CDocument * pCurrentDoc =(CFrameWnd *)m_pMainWnd->GetActiveDocument();
6) 获得状态栏与工具栏指针 CStatusBar * pStatusBar=(CStatusBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
CToolBar * pToolBar=(CtoolBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR);

7) 如果框架中加入工具栏和状态栏变量还可以这样
(CMainFrame *)GetParent()->m_wndToolBar;
(CMainFrame *)GetParent()->m_wndStatusBar;

8) 在Mainframe获得菜单指针 CMenu *pMenu=m_pMainWnd->GetMenu();
9) 在任何类中获得应用程序类
用MFC全局函数AfxGetApp()获得。

10) 从文档类取得视图类的指针
我是从http://download.cqcnc.com/soft/program/article/vc/vc405.html学到的,
从文档获得视图类指针目的一般为了控制同一文档的多个视图的定位问题,我的体会
特别是文字处理CEditView当产生多个视图类时,这个功能是非常需要的。
CDocument类提供了两个函数用于视图类的定位:
GetFirstViewPosition()和GetNextView()
virtual POSITION GetFirstViewPosition() const;
virtual CView* GetNextView(POSITION& rPosition) const;

注意:GetNextView()括号中的参数用的是引用方式,因此执行后值可能改变。
GetFirstViewPosition()用于返回第一个视图位置(返回的并非视图类指针,而是一
个POSITION类型值),GetNextView()有两个功能:返回下一个视图类的指针以及用
引用调用的方式来改变传入的POSITION类型参数的值。很明显,在Test程序中,只有
一个视图类,因此只需将这两个函数调用一次即可得到CTestView的指针如下(需定
义一个POSITION结构变量来辅助操作):
CTestView* pTestView;
POSITION pos=GetFirstViewPosition();
pTestView=GetNextView(pos);

这样,便可到了CTestView类的指针pTestView.执行完几句后,变量pos=NULL,因为没
有下一个视图类,自然也没有下一个视图类的POSITION.但是这几条语句太简单,不
具有太强的通用性和安全特征;当象前面说的那样,当要在多个视图为中返回某个指
定类的指针时,我们需要遍历所有视图类,直到找到指定类为止。判断一个类指针指
向的是否某个类的实例时,可用IsKindOf()成员函数时行检查,如:
pView->IsKindOf(RUNTIME_CLASS(CTestView));
即可检查pView所指是否是CTestView类。

有了以上基础,我们已经可以从文档类取得任何类的指针。为了方便,我们将其作
为一个文档类的成员函数,它有一个参数,表示要获得哪个类的指针。实现如下:
CView* CTestDoc::GetView(CRuntimeClass* pClass)
{
CView* pView;
POSITION pos=GetFirstViewPosition();

while(pos!=NULL){
    pView=GetNextView(pos);
    if(!pView->IsKindOf(pClass))
    break;
}

if(!pView->IsKindOf(pClass)){
    AfxMessageBox("Connt Locate the View.\r\n http://www.VCKBASE.com");
    return NULL;
}

return pView;
}

其中用了两次视图类的成员函数IsKindOf()来判断,是因为退出while循环有三种
可能:

1.pos为NULL,即已经不存在下一个视图类供操作;
2.pView已符合要求。

1和2同是满足。这是因为GetNextView()的功能是将当前视图指针改变成一个视图
的位置同时返回当前视图指针,因此pos是pView的下一个视图类的POSITION,完全
有可能既是pos==NULL又是pView符合需要。当所需的视图是最后一个视图是最后一
个视图类时就如引。因此需采用两次判断。
使用该函数应遵循如下格式(以取得CTestView指针为例):
CTestView* pTestView=(CTestView*)GetView(RUNTIME_CLASS(CTestView));
RUNTIME_CLASS是一个宏,可以简单地理解它的作用:将类的名字转化为
CRuntimeClass为指针。至于强制类型转换也是为了安全特性考虑的,因为从同一个
基类之间的指针类型是互相兼容的。这种强制类型转换也许并不必要,但能避免一
些可能出现的麻烦。

3.从一个视图类取得另一视图类的指针 综合1和2,很容易得出视图类之间互相获得
指针的方法:就是用文档类作中转,先用1的方法得到文档类的指针,再用2的方法,
以文档类的视图定位函数取得另一个视图类。同样,可以实现成一个函数:
(假设要从CTestAView中取得指向其它视图类的指针)
CView* CTestAView::GetView(CRuntimeClass* pClass)
{
CTestDoc* pDoc=(CTestDoc*)GetDocument();
CView* pView;
POSITION pos=pDoc->GetFirstViewPosition();
while(pos!=NULL){
    pView=pDoc->GetNextView(pos);
    if(!pView->IsKindOf(pClass))
    break;
}
if(!pView->IsKindOf(pClass)){
    AfxMessageBox("Connt Locate the View.");
    return NULL;
}

return pView;
}
这个函数和2中的GetView()相比,一是多了第一句以取得文档类指针,二是在
GetFirstViewPosition()和GetNextView()前加上了文档类指针,以表示它们是文档
类成员函数。有了此函数;当要从CTestAView中取得CTestBView的指针时,只需如
下:CTestBView* pTestbView=(CTestView*)GetView(RUNTIME_CLASS(CTestBView));
11)对于单文档中也可以加入多个文档模板,但是一般的开发就使用MDI方式开发
多文档模板,其方法与上述视图的获取方法很接近,这里稍做解释,如果不清楚,
请查阅MSDN,(以下四个内容(11、12、13、14)来源:
http://sanjianxia.myrice.com/vc/vc45.htm

可以用CWinApp::GetFirstDocTemplatePostion获得应用程序注册的第一个文档模板
的位置;利用该值来调用CWinApp::GetNextDocTemplate函数,获得第一个
CDocTemplate对象指针。 POSITION GetFirstDocTemplate( ) const;
CDocTemplate *GetNextDocTemplate( POSITION & pos ) const;

第二个函数返回由pos 标识的文档模板。POSITION是MFC定义的一个用于迭代或对象
指针检索的值。通过这两个函数,应用程序可以遍历整个文档模板列表。如果被检索
的文档模板是模板列表中的最后一个,则pos参数被置为NULL。

12)一个文档模板可以有多个文档,每个文档模板都保留并维护了一个所有对应文
档的指针列表。
用CDocTemplate::GetFirstDocPosition函数获得与文档模板相关的文档集合中第一
个文档的位置,并用POSITION值作为CDocTemplate::GetNextDoc的参数来重复遍历与
模板相关的文档列表。函数原形为:
viaual POSITION GetFirstDocPosition( ) const = 0;
visual CDocument *GetNextDoc(POSITION & rPos) const = 0;  

如果列表为空,则rPos被置为NULL.

13)在文档中可以调用CDocument::GetDocTemplate获得指向该文档模板的指针。
函数原形如下: CDocTemplate * GetDocTemplate ( ) const;
如果该文档不属于文档模板管理,则返回值为NULL。

14)一个文档可以有多个视。每一个文档都保留并维护一个所有相关视的列表。
CDocument::AddView将一个视连接到文档上,将该视加入到文档相联系的视的列表
中,并将视的文档指针指向该文档。当有File/New、File/Open、Windows/New或
Window/Split的命令而将一个新创建的视的对象连接到文档上时, MFC会自动调用
该函数,框架通过文档/视的结构将文档和视联系起来。当然,程序员也可以根据自
己的需要调用该函数。
Virtual POSITION GetFirstViewPosition( ) const;
Virtual CView * GetNextView( POSITION &rPosition) cosnt;

应用程序可以调用CDocument::GetFirstViewPosition返回与调用文档相联系的视的
列表中的第一个视的位置,并调用CDocument::GetNextView返回指定位置的视,并将
rPositon的值置为列表中下一个视的POSITION值。如果找到的视为列表中的最后一个
视,则将rPosition置为NULL.

15)从一个视图类取得另一视图类的指针
这个应用在多视的应用程序中很多见,一般如果自己在主程序或者主框架中做好变
量记号,也可以获得,还有比较通用的就是用文档类作中转,以文档类的视图遍历
定位,取得另一个视图类。这个功能从本文第10项中可以得到。

类别:学习总结 | 评论(0) | 浏览()
 
2007年04月01日 星期日 22:37

2007年4月13日

欢欢下午没有带手机,结果引起了很大的风波。

2007年4月11日

太忙了,连欢欢打来的长途电话都没时间接,晚饭的时候打回去。她说这要是她挂了我的电话,我不得气死,哈哈,我至于这么小气吗

2007年4月9日

欢欢买好机票了。

2007年4月7日

欢欢四月底要回济南了,哈尔滨,只有再等几年相见了。

2007年4月3日

吵架的后遗症?好好表现,天天向上

2007年4月1日

愚人节,手机欠费停机了,昨天晚上几分钟的电话就花光了卡里的余额,不能吵架,各方面都有损失啊

类别:默认分类 | 评论(0) | 浏览()
 
2007年04月01日 星期日 09:44

     也许是爱情经历的太少,也或是来自男孩子的狂妄的自尊,我对自己的女友,要求的过多了。我们在一起,几乎已经一年,这一年来,快乐和幸福的日子,总是在我们的身边。但是,不知道怎么的,每隔一段时间,就会有一些很严重的摩擦,这种摩擦,随着欢欢远游在哈尔滨,愈加严重。

     爱情不是简简单单的相互喜欢,更多的是相互依恋,共渡一生,既然在茫茫人海之中,我们相遇,就是一种缘分,一种很缘分的缘分。我是一个在爱情方面无所求的人,男孩子顶天立地,创业有为,不敢说是国家的脊梁,但也要成为家族的支撑。昨天我和我的一个表妹通了电话,她说今年的研究生考试恐怕不能通过复试线了,但我作为家族里读书读到最高的人,一再告诫她,要调剂,要争取,实在不行就再考一年。然而,继续读书,何尝不是一种辛苦。

     小学的时候,就听大人们说,等你考上大学了,就会很轻松了,爱干什么爱干什么。昨天,当我坐在十号楼的自习室里,看着周围的刚入大学的孩子们那稚嫩的面庞和朴素的衣着,我想,你们不知道,其实,书,是越往上读越累的,哪怕是读到博士,博士后,距离就业就会越接近,没有人会让你学什么,做什么,但是你自己,却不能不做,因为,你在为自己的将来而做,为自己的家庭而做,为自己的家族而做。

     平凡的生活中,我居然邂逅了你,我真的是一个很感性的人,强烈的愿望让你能和你在一起。然后我们就在一起了。

     但我不得不承认,我有着男朋友普遍具有的小心眼,而且要更严重,也许是我对自己要求很高,于是也对自己身边的人有所要求,但是这种要求,对于你,是一种限制。就这个话题,我和一位本科时的同学探讨过,他现在已经和中国农业银行总行签约,他的女友在家乡的一家事业单位工作。

     他跟我说,老于,女孩子是不能管的,有很多次我也很生气,但是我也想通了,她不在你身边,她有自己的社交圈子,她应该有自由。

     我也接受,其实,我实在是太累了,有课程,有项目,还有研究课题,自从欢欢去了哈尔滨,我几乎没有娱乐,哪怕是在电脑上看个电影。我真的不想再那么小心眼了,这样,我很累,她很累。

     是我的错误,让你伤心了,但是,我没有恶意,也绝不是不相信你。我没有和石老师说我们什么时候结婚,那是因为她的口气是调侃的。我想对你说,

     我爱你,我想和你共渡一生。

类别:一些文字 | 评论(1) | 浏览()
 
2007年03月29日 星期四 09:53

http://dev.csdn.net/develop/article/12/12365.shtm

CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。
而将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = 64;
s.Format("%d", i)
Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString
ss="1212.12";
int temp=atoi(ss);
CString aa;
aa.Format("%d",temp);
AfxMessageBox("var is " + aa);
}

sart.Format("%s",buf);

CString互转char*

///char * TO cstring
CString strtest;
char * charpoint;
charpoint="give string a value";
strtest=charpoint;


///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength());

标准C里没有string,char *==char []==string

可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成
char *,用操作符(LPCSTR)CString就可以了。


CString转换 char[100]

char a[100];
CString str("aaaaaa");
strncpy(a,(LPCTSTR)str,sizeof(a));

类别:vc_cxx_c | 评论(0) | 浏览()
 
2007年03月19日 星期一 20:47

第一代 仅用于用于贴图
第二代 将转换和光照,由CPU计算转为GPU计算,但是不可编程的
第三代 使用了顶点着色,来代替T&L(3D建模),使用像素着色,来代替雾化等粒子效果(表面渲染),是可编程的,这样,就可以完成一些通用的运算,尤其是浮点运算。

屏幕上的二维坐标点(称作fragment(OPENGL中的叫法)或者pixel(D3D中的叫法)-即像素

使用这两套API,其实他们是对显卡API的封装,利用他们才能使用好显卡的功能,只要用了他们就可以用好显卡的功能。
加速方法:
1.可以用GPU做通用浮点运算,然后直接向显存输出
2.可编程着色器,改变了渲染流水线,使渲染速度加速????为什么

类别:学习总结 | 评论(6) | 浏览()
 
2007年03月18日 星期日 20:40
类别:学习总结 | 评论(0) | 浏览()
 
2007年03月18日 星期日 15:33

2007年3月31日

3月的最后一天,欢欢在哈尔滨已经两个周了,晚上她把博客也搬到了百度。

2007年3月30日

哈尔滨下大雪了,还看到了哈尔滨的风景,感觉就是外国啊

2007年3月29日

伤害爱情的,除了时间,还有距离。要好好呵护。

2007年3月25日

欢欢在电话里哭了,我真想立刻飞到哈尔滨。是谁发明了辅导员交流?

2007年3月24日

交流生邀请欢欢吃晚餐,她的人缘还不错嘛。就是玩的有点晚。

2007年3月23日

QQ有的时候也不好,这一点我要牢牢记住。

欢欢有一支股票竟然又涨停了,这真是个全民炒股的时代。

2007年3月22日

欢欢的股票涨了,我也有投资呢,她上午给我打了电话,科技真的很发达,倒退十年,怎么可能有这么便的联系方式呢:手机,电话,QQ,博客。

2007年3月21日

给欢欢打了电话,她一个人住在标准间式的公寓,食堂的饭就像是韩式烧烤店里提供的,真神奇。看样子,交流还是不错的。只是让我担心了。

2007年3月20日

欢欢可以上网了,第一次感觉到QQ是那样的重要。

2007年3月19日

欢欢九点才起来,大概是累了,也许是温度正适宜于睡觉。我担心的是哈尔滨的寒冷,现在看来,是多余的,那里的室内温度超过我们这儿。

2007年3月18日    

飞机如此快速,以至于我还没有从机场回到学校,欢欢已经到达了哈尔滨。晚饭是一个人吃的。

类别:默认分类 | 评论(2) | 浏览()
 
     
 
 
文章分类
 
 
 
 
 
 
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   

郁闷了昨天一晚上 现在终于OK了
 

祝福你们,希望你们在一起永远快乐和幸福。也祝福我们自己小鱼和欢欢
 
 
 
 
     


©2008 Baidu