|
i am not getting any idea how to incorporate DPI in setting my dialog's width.. can u help me out....
|
|
|
|
|
If you wish to update your dialog size then, one simple way may be:
- define a default (pixel) size for a default
DPI setting (for instance 800x600 pixels for 96x96 dpi). - on receiving the 'system dpi changed' notification, change the size according to new dpi settings, for instance,
120x120 dpi would require:
(800*120/96) x (600*120/96) pixels = 1000x750 pixels.
You may obtain system dpi settings with the following code
HDC hdc = GetDC(NULL);
int dpix = GetDeviceCaps(hdc, LOGPIXELSX);
int dpiy = GetDeviceCaps(hdc, LOGPIXELSY);
ReleaseDC(NULL, hdc);
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi to all.
I am having a problem in comparing characters in a string. I need to do it character by character only.
Currently I am checking something like
if(*st1 == *st2){.....}
But It results different when the characters are in different case.
So Can anyone please help me in MODIFYING THE SAME STATEMENT FOR CASE INSENSITIVE COMPARISON.
Thanks in advance
-----------------------------
I am a beginner
|
|
|
|
|
if (_tolower(*st1) == _tolower(*st2))
|
|
|
|
|
thanks a lot
-----------------------------
I am a beginner
|
|
|
|
|
I have been working on this problem for a long time and with no progress.
I am trying to count the number of words in a CString and other punctuation and specific word counts.
My code is working properly for .txt files using ifstream and stringstream.
However when I was trying to convert those codes from txt files to CString, errors came in such as conversion error between CString and Stringstream. Will appreciate if you can take a look at my codes and suggest a solution. Thanks a lot!
CString Content("some text inside");
string file,line,word,temp;
stringstream *ss;
map<string,int> freq;
map<string,int>::iterator z
stringstream myfile(Content);
while (! myfile.eof() )
{
// Line & Word Counts
while (getline (myfile,line)){
++lineCnt;
ss = new stringstream(Content);
while (ss->good()){
if ((*ss)>>word){
++dwordCnt;
if ((z=freq.find(word)) == freq.end()){
freq.insert(pair<string,int>(word,1));
}else {
freq[word]++;
}
//Semi-colon Count
size_t p=0;
size_t n=0;
size_t m=0;
size_t j=0;
while ((p = word.find(';',p)) != string::npos){
++semiCnt; ++p;
}
while ((n = word.find('.',n)) != string::npos){
++stopCnt; ++n;
}
while ((m = word.find('?',m)) != string::npos){
++QueCnt; ++m;
}
while ((j = word.find('!',j)) != string::npos){
++exclCnt; ++j;
}
}
}
delete ss;
}
}
for (z = freq.begin();z != freq.end(); ++z) {
if (z->second == 1) ++duniqCnt;
if ((z->first).find(BUT) != string::npos) ++butCnt;
if ((z->first).find(AND) != string::npos) ++andCnt;
if ((z->first).find(HENCE) != string::npos) ++henceCnt;
if ((z->first).find(WHILE) != string::npos) ++whileCnt;
if ((z->first).find(BECAUSE) != string::npos) ++becauseCnt;
if ((z->first).find(AS) != string::npos) ++asCnt;
if ((z->first).find(SHALL) != string::npos) ++shallCnt;
if ((z->first).find(THE) != string::npos) ++theCnt;
if ((z->first).find(OF) != string::npos) ++ofCnt;
}
|
|
|
|
|
kiddyduck wrote: stringstream myfile(Content);
Have you tried:
stringstream myfile(ios_base::in);
myfile << (LPCTSTR) Content;
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Oh yes! It's working fine now. However there is another problem with another string stream.
Tried using the solution you suggested, still no avail. Thanks a lot! It has been great help from you!
stringstream *ss;
ss = new stringstream((LPCTSTR)Content);
error C2664: 'std::basic_stringstream<_Elem,_Traits,_Alloc>::basic_stringstream(std::ios_base::openmode)' : cannot convert parameter 1 from 'LPCTSTR' to 'std::ios_base::openmode'
|
|
|
|
|
kiddyduck wrote: Tried using the solution you suggested, still no avail.
My suggestion would have been:
stringstream *ss = new stringstream(ios_base::in);
*ss << (LPCTSTR) Content;
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Solved it.
The above m\solution would not be possible as I am using the UNICODE.
Therefore I used an intermiediary to convert into string in order to use the string stream
CT2CA pszConvertedAnsiString (Content);
std::string s(pszConvertedAnsiString);
ss = new stringstream(s);
Thanks for your help!
|
|
|
|
|
When does Message Queue get created in window programming?In the sense, In Doc/View architecture or Dialog based application , when message queue gets created? Can anyone explain it thru code deeply?
|
|
|
|
|
I assume that it's between loading and running the app (i.e by the OS, and in the background)
|
|
|
|
|
Prabhu092009 wrote: When does Message Queue get created in window programming?
The message queue is created as soon as your application starts, whether Doc/Vew or dialog. Some system messages are automatically posted to the queue as a result of the window being created and some as a result of user actions, such as mouse movement/clicks in the window's area, menu selection, toolbar button clicks etc.
|
|
|
|
|
MFC , you know, comes with source code...
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
so you don't have any excuse for not providing an accurate and detailed answer!?
|
|
|
|
|
I don't need excuses: I'm a Klingon developer.
BTW Klingon developers don't use sissies-frameworks like MFC .
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
A message queue is created for a thread by the system, if the thread is designed to work with messages (There is a message loop in the thread) and if messages are posted to the thread.
Read about it here - Using Messages and Message Queues[^]
|
|
|
|
|
Thank u so much for your answers.
|
|
|
|
|
In "Programming Priciples and Practice Using C++".
chapter 17.5 destructors
class vector{
int sz;
double* elem;
public:
vector(int s)
:sz(s),
elem(new double[s])
{
for(int i=0; i < s;i++) elem[i]=0;
}
int size() const {return sz;}
};
|
|
|
|
|
//"initialize sz", I have no idea what does it mean that writting?
it means "call sz's constructor with the value in s."
it's just another way to initialize member variables.
|
|
|
|
|
forPower wrote:
vector(int s)
:sz(s),
elem(new double[s])
It means set the variable sz to the value of the constructor parameter s , and set the variable elem to point to a new array of doubles, of length s . It is a shorthand alternative to writing the lines
sz = s;
elem = new double[s];
|
|
|
|
|
A value can be put in a variable by either initialization and assignment.
Here is the difference -
double d = 25.4;
double d;
d = 25.4;
What you're doing is initializing a class member variable because you cannot do the initialization as I did above inside a class. (You can if the variable is a static const variable.)
Read about it here - Initializing C++ Class Members[^]
|
|
|
|
|
i have this code to load a bmp picture. but i don't know how to use it.!!!
<br />
#include "stdafx.h"<br />
#include "glaux.h"<br />
#include "glut.h"<br />
<br />
GLuint texture[6];<br />
<br />
int LoadGLTextures()<br />
{<br />
int Status=FALSE;
<br />
AUX_RGBImageRec *TextureImage[1];
<br />
memset(TextureImage,0,sizeof(void *)*2);
<br />
if (TextureImage[0]=LoadBMP("apple.bmp"))<br />
{<br />
Status=TRUE;
<br />
glGenTextures(3, &texture[0]);
glBindTexture(GL_TEXTURE_2D, texture[0]);<br />
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 3, <br />
TextureImage[0]->sizeX, TextureImage[0]->sizeY,0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);<br />
<br />
glBindTexture(GL_TEXTURE_2D, texture[1]);<br />
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);<br />
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);<br />
glTexImage2D(GL_TEXTURE_2D, 0, 3, <br />
TextureImage[0]->sizeX, TextureImage[0]->sizeY,0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);<br />
<br />
glBindTexture(GL_TEXTURE_2D, texture[2]);<br />
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);<br />
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]->sizeX,TextureImage[0]->sizeY, GL_RGB, GL_UNSIGNED_BYTE,TextureImage[0]->data);
<br />
<br />
if (TextureImage[0])
{<br />
if (TextureImage[0]->data)
{<br />
free(TextureImage[0]->data);
}<br />
free(TextureImage[0]);
}<br />
}<br />
<br />
return Status; <br />
}<br />
AUX_RGBImageRec * LoadBMP(char *Filename)<br />
{<br />
FILE *File=NULL;
<br />
if (!Filename)
{<br />
return NULL;
}<br />
<br />
File=fopen(Filename,"r");
<br />
if (File)
{<br />
fclose(File);
return auxDIBImageLoad(Filename);
}<br />
<br />
return NULL; <br />
}<br />
|
|
|
|
|
What you need to do is to get an idea on what to do to use an image as texture with OpenGL by reading the code you posted. Then you can incorporate that into your project. The basic idea is not that complicated.
If the piece of code you provided is part of a sample project, you can compile and run the project to see how it works.
Hope this helps. Happy programming!
|
|
|
|
|
Can you write a simple code which use this code as an example?
thank very much.
|
|
|
|