2011年6月17日新知識

 1.攝像機鏡頭

       長焦、中焦、短焦(廣角)都是針對標準鏡頭而言的。

  對於135相機而言,50MM鏡頭算是標準鏡頭,比較符合人們普通習慣的視角。

  小於50mm的鏡頭就是短焦(廣角)。50mm-135mm之間的鏡頭是中焦,大於135mm的鏡頭是長焦。

  

  

長焦

       長焦就是鏡頭可以伸至比較遠的距離,如10倍就是把35毫米的鏡頭伸至350毫米,便於捕捉遠處的景物;短焦一般就是指近焦,或者微距,就是離鏡頭很近的景物可以拍到,一般拍攝書中的文字用的着;調焦就是對焦,使景物在鏡頭或顯示屏上變得清晰。

2.通用對話框屬性

        CFileDialog 中的dwFlags 中放入的是對話框的風格和特性值。

        OFN_FILEMUSTEXIST和 OFN_PATHMUSTEXIST要求用戶在打開對話框的編輯控件中輸入的文件名或路徑名必須存在。
        OFN_LONGNAMES 告訴對話框顯示長文件名。
        OFN_EXPLORER 告訴WINDOWS對話框的外觀必須類似資源管理器。
        OFN_HIDEREADONLY 指定不要顯示只讀文件(既使它的擴展名符合過濾模式)。

3.GetWindowRect和GetClientRect

   這裏是轉帖,原文:http://blog.chinaunix.net/u/25372/showart_304363.html
           GetWindowRect是取得窗口在屏幕座標系下的RECT座標(包括客戶區和非客戶區),這樣可以得到窗口的大小和相對屏幕左上角(0,0)的位置。

    GetClientRect取得窗口客戶區(不包括非客戶區)在客戶區座標系下的RECT座標,可以得到窗口的大小,而不能得到相對屏幕的位置,因爲這個矩陣是在客戶區座標系下(相對於窗口客戶區的左上角)的。  

    ClientToScreen把客戶區座標系下的RECT座標轉換爲屏幕座標系下的RECT座標.

    ScreenToClient把屏幕座標系下的RECT座標轉換爲客戶區座標系下的RECT座標.     我們對同一個窗口先GetWindowRect取得一個RECT,再用ScreenToClient轉換到客戶座標系。然後GetClientRect取得一個RECT,再用ClientToScreen轉換到屏幕座標系。顯然,GetWindowRect取得的矩陣不小於GetClientRect取得的矩陣。因爲前者包含了非客戶區,而後包括了客戶區。   

    對GetWindowRect取得的矩陣ScreenToClient後,矩陣的大小沒有變小,(-3,-29)是窗口的左上角的座標,相對窗口客戶區左上角。   

    對GetClientRect取得的矩陣ClientToScreen後,矩陣也沒有變大,新得到的矩陣是窗口客戶區在屏幕座標系上的RECT。

4.光標

   HCURSOR是光標句柄。

SetCursor

     概述

  rand()函數是產生隨機數的一個隨機函數。C語言裏還有 srand()函數等。

詳述rand()

  (1)使用該函數首先應在開頭包含頭文件stdlib.h   #include<stdlib.h>   (2)在標準的C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關。   (3)rand()函數沒有輸入參數,直接通過表達式rand()來引用;例如可以用下面的語句來打印兩個隨機數:   printf("Random numbers are: %i %i/n",rand(),rand());   (4)因爲rand()函數是按指定的順序來產生整數,因此每次執行上面的語句都打印相同的兩個值,所以說C語言的隨機並不是真正意義上的隨機。   (5)爲了使程序在每次執行時都能生成一個新序列的隨機值,我們通常通過爲隨機數生成器提供一粒新的隨機種子。函數 srand()(來自stdlib.h)可以爲隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱爲隨機數生成器的初始化器。
6.非MFC工程使用MFC庫時的問題及解決辦法
     這段文章轉載自小魚fish/雲傲霆yunaoting的博客文章:
 

      非MFC工程創建時是不支持MFC特性的,也就是說在這些工程中不能使用MFC庫中的類,如CString,CArray等等;然而我們在處理實際問題時卻常常會有使用這些類的希望,因爲很多時候它們可以使事情更加簡單化,例如,要從指定的目錄中搜索滿足條件的文件,用CFileFind類將會非常方便。可能有人會說,爲何不在一開始就創建MFC工程呢?問題在於MFC工程會產生很多向導生成代碼,如基於單文檔的工程會有View,Doc等類,很多時候我們只需要一個空工程就可以了;而且,我們可能經常會在已有的工程上直接進行修改、再加工。

MFC工程使用MFC庫時最常見的問題就是windows.h重複包含錯誤,具體如下:

fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #i nclude <windows.h>

 

  1)工程à設置中,將MFC的使用由原來的“no using MFC(不使用MFC)”改爲“Use MFC in a shared dll(在共享DLL中使用MFC)

  2)頭文件包含

  不同的MFC類需包含的頭文件是不一樣的。常用的類,如CString, CEdit 等,包含afxwin.h就可以了,CFileFind需要包含afx.h,即#i nclude <afx.h>

   如果不清楚包含什麼頭文件的話,可以同msdn進行查詢,msdn中,對於MFC類的介紹中,都會給出相應的header file requirement.

  3)include 語句一定要寫在首行

   這一點很重要,通常出現前面講到的windows.h重複包含錯誤,都是因爲#i nclude 語句沒有寫在首行。另外還要注意的是,如果#i nclude語句是在一個頭文件裏,那麼對應頭文件的包含也要寫在首行。示例如下:

=============

test.h文件的內容如下:

include <afxwin.h> //保證該語句在首行

include …

 

test.cpp的文件內容如下:

#i nclude “test.h” //同樣也要保證該語句在首行

include …

=============

 

發佈了16 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章